我正在尝试使用msal和azure b2c进行身份验证。我有重定向到身份验证页面和回调。我创建了一个组件,我可以在路由器中使用而不是Route来检查用户是否经过身份验证,如果没有重定向到登录页面。
PrivateRoute.tsx
const auth = new Auth();
export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={(props) => (
auth.isAuthenticated() === true
? <Component {...props} />
: <Redirect to='/login' />
)} />)
AuthService.tsx
isAuthenticated = () => {
this.userAgentApplication.acquireTokenSilent(applicationConfig.b2cScopes)
.then(function (token) {
return true;
}, function (error) {
this.userAgentApplication.acquireTokenPopup(applicationConfig.b2cScopes).then(function (token) {
return true;
}, function (error) {
return false;
});
});
}
问题是this.userAgentApplication.acquireTokenSilent是一个承诺。有没有人知道如何将其设置为回调或等待承诺,以便路由呈现正确的组件?
由于