OpenId Blazor refresh_token

问题描述

我有一个桌面客户端应用程序,它使用 Azure AD 对用户进行身份验证。 我希望使用用户已在客户端应用程序中提供的相同身份验证并将令牌传递给新的 Blazor 项目。因此,如果我将 refresh_token 作为查询参数传递给我的新 Web 应用程序,我是否可以使用它为该用户创建新的访问令牌,而无需他们重新进行身份验证?

解决方法

不,您不能在 SPA 应用程序上使用刷新令牌,而 Blazor 是 SPA。因为没有安全的方式在浏览器上存储刷新令牌。
但是,您可以更新访问令牌。实际上,访问令牌是使用 oidc.js 使用的相同机制(通过使用 iframe)自动更新的。
您必须使用带有 PKCE 的授权代码流(或隐式流,但已弃用)配置您的客户端