Chi*_*ief 7 oauth jwt asp.net-web-api owin jwt-auth
目前正在关注有关如何实现 OAuth JWT 身份验证的本教程。目前卡在两件事情上,这已经变得有点难以解决。
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audienceId },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, audienceSecret)
}
});
Run Code Online (Sandbox Code Playgroud)
不知道为什么我会收到此错误,因为所有必需的软件包都已安装。在另一个 IssuerSecurityKeyProviders 上存在,如果我选择使用这个或运行带有错误的构建,它将生成令牌但是当我尝试访问 api 上的任何授权端点时,我收到可怕的“消息”:“授权此请求已被拒绝。”
当我调试令牌时,所有似乎都匹配。发行人相同,受众 ID 相同,用户也确实存在于数据库中,但 changepassword 端点总是失败,如下面的屏幕截图所示。
最后但并非最不重要的一点是寻找一个很好的教程,我可以按照它来帮助我使用 JWT 和 OWIN 启动和运行 Web API 身份验证。大部分已经过时,包已经改变了多年来例如这一个,这是很难发现的答案中遇到的问题。令人沮丧的触摸
Pau*_*der 16
较新版本的“Microsoft.Owin.Security.Jwt”库可能有一些需要考虑的重命名。试试这个:
// Api controllers with an [Authorize] attribute will be validated with JWT
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audienceId },
IssuerSecurityKeyProviders = new IIssuerSecurityKeyProvider[] {
new SymmetricKeyIssuerSecurityKeyProvider(issuer, audienceSecret)
}
});
Run Code Online (Sandbox Code Playgroud)
这基本上用“IssuerSecurityKeyProviders”代替“IssuerSecurityTokenProviders”和“IIssuerSecurityKeyProvider”代替“IIssuerSecurityTokenProvider”。
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |