我遵循 damienbod Ang2 Id Serv 4 OIDC提供的示例,其中我有以下内容:身份服务器(修改后的实现)、资源 API 和 ng-2 应用程序。
从身份服务器获得身份验证并尝试访问我受保护的 API 后,它总是给我错误 401(未经授权)。
我已将身份服务器上的客户端更改为使用 jwt 的令牌类型而不是引用,然后它就起作用了。
身份服务器上的客户端配置:
ClientName = "angular2client",
ClientId = "angular2client",
AccessTokenType = AccessTokenType.Jwt,
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
//redirect urls are ommited
AllowedScopes = new List<string>
{
"openid",
"resourceAPIs",
"role",
}
资源 API:身份验证
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:44311",
ScopeName = "resourceAPIs",
RequireHttpsMetadata = false
});
我需要知道,为什么 jwt 令牌类型使其工作以及修改哪些代码以使引用类型令牌工作?