MSAL如何读取令牌的到期日期?

时间:2019-04-14 10:04:07

标签: javascript msal stenciljs

您是否知道是否有一种方法可以检查令牌在Msal中是否已过期(以便知道是否应该获取AcquireTokenSilent) 谢谢

1 个答案:

答案 0 :(得分:1)

您不需要自己检查。在MSAL中,您将调用acquireTokenSilent方法向Azure AD发出无提示请求(不提示用户)以获取访问令牌。调用后,MSAL将在过期后自动刷新您的访问令牌。

如果由于某些原因(例如令牌过期或密码更改)而导致无提示令牌获取失败,则您将需要调用一种交互式方法来获取令牌,例如acquireTokenPopup或acquireTokenRedirect。

var graphScopes = ["user.read", "mail.send"];

   userAgentApplication.loginPopup(graphScopes).then(function (idToken) {
       //Login Success
       userAgentApplication.acquireTokenSilent(graphScopes).then(function (accessToken) {
           //AcquireTokenSilent Success
       }, function (error) {
           //AcquireTokenSilent Failure, send an interactive request.
           userAgentApplication.acquireTokenPopup(graphScopes).then(function (accessToken) {
               updateUI();
           }, function (error) {
               console.log(error);
           });
       })
   }, function (error) {
       //login failure
       console.log(error);
   });

您可以参考此article以获得更多详细信息。