我有一个带有 oidc 身份验证的 Blazor WebAssembly(最新 3.2.0)应用程序。
asp.net 身份验证提供了一种获取 accessToken 的方法,但看不到任何访问我的场景所需的 id_token (jwt) 的方法。
我可以在浏览器的本地存储中看到id_token。
访问它的最佳方式是什么?
Thanks
您可以使用 JSInterop 从会话存储中读取它,它存储在 key 处oidc.user:{应用程序baseUri}:{应用程序客户端ID} :
@inject IJSRuntime JSRuntime
@inject NavigationManager NavigationManager
...
@code {
private async Task<string> ReadIdToken()
{
const string clientId = "your oidc client id";
var userDataKey = $"oidc.user:{NavigationManager.BaseUri}:{clientId}";
var userData = await JSRuntime.InvokeAsync<UserData>("sessionStorage.getItem", userDataKey);
return userData.id_token;
}
class UserData
{
public string id_token { get; set; }
public int expires_at { get; set; }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)