Rob*_*bie 2 openid-connect asp.net-core blazor blazor-webassembly
我有一个带有 oidc 身份验证的 Blazor WebAssembly(最新的 3.2.0)应用程序。asp.net 身份验证提供了一种获取 accessToken 的方法,但看不到任何方法来访问我的场景所需的 id_token (jwt)。我可以在浏览器的本地存储中看到 id_token。访问它的最佳方式是什么?
谢谢
您可以使用 JSInterop 从会话存储中读取它,它存储在键oidc.user:{app baseUri}:{app client 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; }
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
970 次 |
最近记录: |