gpt4 book ai didi

c# - 承载错误 - invalid_token - 找不到签名 key

转载 作者:行者123 更新时间:2023-12-02 09:41:29 24 4
gpt4 key购买 nike

我有一个与 .Net Core 2.2 API 后端连接的 Angular 7 应用程序。这是与 Azure Active Directory 的接口(interface)。

在 Angular 7 方面,它正在使用 AAD 进行正确身份验证,并且我得到了一个有效的 JWT,已在 jwt.io 上进行了验证。 .

在 .Net Core API 端,我创建了一个简单的测试 API,其中包含 [Authorize]

当我从 Angular 调用此方法时,添加承载 token 后,我得到(如 Chrome 调试工具、网络选项卡、“ header ”中所示):

WWW-Authenticate: Bearer error="invalid_token", error_description="The signature key was not found"

HTTP/1.1 401 未经授权

简单的测试 API 是:

    [Route("Secure")]
[Authorize]
public IActionResult Secure() => Ok("Secure works");

Angular 调用代码也非常简单:

    let params : any = {
responseType: 'text',
headers: new HttpHeaders({
"Authorization": "Bearer " + token,
"Content-Type": "application/json"
})
}

this.http
.get("https://localhost:5001/api/azureauth/secure", params)
.subscribe(
data => { },
error => { console.error(error); }
);

如果我删除 [Authorize] 属性,并将其作为来自 Angular 的标准 GET 请求,它可以正常工作

我的 Startup.cs 包含:

        services
.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureADBearer(options => this.Configuration.Bind("AzureAd", options));

appsettings.json 中的选项均已正确设置(例如 ClientId、TenantId 等),并且此处的 options 按预期填充。

最佳答案

我也遇到了同样的问题。我缺少权限..确保权限和 api 名称现在正确,启动文件中配置服务中的这段代码对我有用:

services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication( x =>
{
x.Authority = "http://localhost:5000"; //idp address
x.RequireHttpsMetadata = false;
x.ApiName = "api2"; //api name
});

关于c# - 承载错误 - invalid_token - 找不到签名 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com