我想与Miscrosoft Outlook集成。我可以使用MSAL.js登录并获得访问令牌,但无法获得刷新令牌。有办法做到这一点吗?
发布于 2017-06-07 22:07:53
假设您使用的是MSAL.js (https://github.com/AzureAD/microsoft-authentication-library-for-js),也就是使用隐式流进行身份验证和授权。
隐式流不支持刷新令牌,但您可以静默请求新令牌。这与最初请求令牌(id或access)的方式类似。不幸的是,我还没有发现MSAL.js透明地做这件事,我需要检测过期的令牌,并在我的代码中请求新的令牌。您可以阅读有关刷新令牌here的更多信息。
或者,如果您正在实现的内容允许使用其他OAuth库(例如,MSAL库),那么您可以使用显式支持刷新令牌的其他MSAL流之一。
发布于 2020-10-01 09:16:20
我使用的是msalv1.4.0
我删除了存储中的2个密钥(见图),然后再次调用acquireTokenSilent来获取新的访问令牌。

删除这两个密钥的代码:
const keys = Object.keys(sessionStorage).filter(x => x.indexOf('authority') > 0)
keys.forEach(x => sessionStorage.removeItem(x))发布于 2020-07-08 03:21:58
我在MSAL.js文档中找不到任何答案,但是this source code comment建议您可以手动续订令牌,只将clientId作为您的作用域传递给acquireTokenSilent。
若要续订idToken,请将clientId作为身份验证参数
中的唯一作用域传递
https://stackoverflow.com/questions/44111753
复制相似问题