我有一个函数调用isAuthenticated,可以像这样检查令牌的有效性:
isAuthenticated = async () => {
const data = await request.call({
url: `http://localhost:1337/utilisateurs/VerifyUserTok`,
method: `post`,
parameters : {
authorization: `bearer ${sessionStorage.getItem(`token`)}`
}
});
if (data.IsValide){
return true;
} else {
return false;
}
}
在我受保护的路由中,如果上一个函数返回 false,我不会重定向该人。但是在 protected.route.js 文件中,该函数在第一次返回时进入,而无需等待我的 isAuthenticated 函数返回一些内容:
import React from 'react';
import { Route, Redirect } from 'react-router-dom';
import auth from './auth.js'
import NavMenu from './NavMenu';
export const ProtectedRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
render = {props => {
if(auth.isAuthenticated()){
return <div className="page-body">
<Route>
<NavMenu/>
<div className="right-body">
<Component {...props}/>
</div>
</Route>
</div>
} else {
return <Redirect to={
{
pathname: "/",
state: {
from: props.location
}
}
} />
}
}}
/>
);
}
www说
慕雪6442864
忽然笑
随时随地看视频慕课网APP
相关分类