我正在研究Secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Active Directory B2C指南,以在我的Blazor WebAssembly应用程序中启用客户端身份验证(没有服务器端组件,整个应用程序都在浏览器中运行)。该设置可以按预期工作,我可以将用户重定向到AD B2C用户流,登录,然后在正确验证用户身份的情况下重定向回我的应用程序。
默认身份验证行为在sessionStorage
内保留了从AD B2C检索到的JWT令牌,该令牌将在关闭浏览器窗口后立即清除。我想自定义此默认功能,以将令牌持久保存到localStorage
以便进行更长的身份验证会话-我希望在用户关闭浏览器窗口后保持登录状态,以便后续访问。这些文档似乎没有提供有关如何实现此目标的任何信息。
我还查看了Additional Scenarios文档,以了解如何定制RemoteAuthenticatorView
,但是找不到与这些令牌的存储和检索方式有关的任何信息。
我对此表示感谢!
答案 0 :(得分:4)
我通过浏览MSAL.js文档来解决了这个问题:有一个cacheLocation
配置属性可以设置为 localStorage ,而Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions
则公开了属性。
要使其正常运行,我只需将以下内容添加到 Program.cs :
builder.Services.AddMsalAuthentication(options =>
{
options.ProviderOptions.Cache.CacheLocation = "localStorage";
...
});