3

我有一个通过 Microsoft 帐户执行用户身份验证的 Angular 应用程序。为此,我使用了 MSAL JS 库,它可以很好地验证用户身份。但是我们有后端服务器需要调用 Microsoft Graph API 的要求。现在的问题是 MSAL 库返回的 access_token 的生命周期为 1 小时,因此一旦它从我们的后端服务器过期就无法使用。

所以我正在寻找一种可以获取授权码的方法,该授权码可以从我们的后端服务器交换以获取访问令牌和刷新令牌。由于我们也获得了刷新令牌,因此只要考虑到刷新令牌仍然有效,我们就可以在访问令牌过期时刷新它。

我不确定这是否可以通过 MSAL 库实现,或者是否有任何其他可用于 SPA 的替代方案来支持这种情况,我已经在上面进行了描述。

4

1 回答 1

0

可以使用 MSAL.js 2.0,它是 MSAL.js 1.x 的直接替代品,并支持单页应用程序的授权代码流。借助 MSAL.js 2.0,您可以在 Microsoft 标识平台中使用带有 PKCE 和刷新令牌的授权流程,以在阻止第三方 cookie 时保持用户登录。

在这里阅读更多:

https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-auth-code https://docs.microsoft.com/en-us/azure/active-directory /develop/v2-oauth2-implicit-grant-flow https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-third-party-cookies-spas

于 2021-07-02T04:49:59.900 回答