我每次需要令牌时都需要调用acquireTokenSilent吗?

时间:2019-06-22 07:31:09

标签: javascript reactjs msal

因此,我正在创建一个可以使用Microsoft帐户登录的应用程序,我已经在Azure和权限中设置了我的应用程序。它已经在工作,但是在切换路由并再次使用acquireTokenSilent时,我收到此错误。我使用的是loginRedirect,我在应用程序上注册的RedirectURI仅是身份验证,还是应该在我的Azure应用程序中注册所有可能的路由?

https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-core/samples/react-sample-app

我遵循此示例,并使用react-router-dom

添加了一些路由功能

我希望它已经可以登录,但是我已经收到了

“ AADSTS50011:在请求中指定的答复URL与为应用程序配置的答复URL不匹配:“ 308cc3d1-3214-48ce-99b2-697fc9211852”。”

1 个答案:

答案 0 :(得分:1)

该错误表明您的令牌请求指定的回复URL与您在AAD中为此应用程序注册的URL不同。它们必须完全相同。

您应在每组API调用之前调用AcquireTokenSilent,以确保您具有用于这些调用的有效令牌。如果AcquireTokenSilent仍然有效,则它将返回其已在缓存中拥有的令牌;如果隐式id_token,则使用刷新令牌或cookie获取新的令牌。但是,只有在确定您已经具有访问令牌或之前的非静默获取令牌调用已对使用进行了身份验证时,您才能进行此调用。