如何在依赖于承诺的反应js中导出路由

时间:2017-12-21 14:41:10

标签: javascript reactjs authentication

我正在尝试使用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是一个承诺。有没有人知道如何将其设置为回调或等待承诺,以便路由呈现正确的组件?

由于

0 个答案:

没有答案