【发布时间】:2020-10-22 10:21:14
【问题描述】:
我使用 Blazor WebWebAssembly 作为前端,使用 AWS Cognito 作为 IDP。
我可以成功登录 AWS Cognito,但无法使用以下代码获取访问令牌,因为“X-Frame-Options”指令设置为“DENY”错误。
private async Task WriteTokenToConsole()
{
var tokenResult = await TokenProvider.RequestAccessToken();
if (tokenResult.TryGetToken(out var token))
{
System.Diagnostics.Debug.WriteLine(token.Value);
}
}
然而,如果我将 IDP 切换到 Identity Server 4,我可以获得访问令牌没有问题。
根据这条评论 https://github.com/dotnet/aspnetcore/issues/22651#issuecomment-640565340 ,是因为 Cognito 不符合标准吗?
有没有办法解决这个问题?
谢谢
【问题讨论】:
-
除了实现你的
AuthenticationStateProvider没有 -
它存储在 Microsoft.AspNetCore.Components.WebAssembly.Authentication.CachedAuthSettings 键中浏览器的会话存储中。如果您使用 JSRuntime.InvokeAsync
("sessionStorage.getItem", key) 您可以访问原始 JSON,然后对其进行反序列化(如果您编写与其结构匹配的自定义对象)。
标签: asp.net-core amazon-cognito blazor blazor-client-side