我在一个JwtBearerAuthentication WebAPI项目中使用.NET Katana中间件来通过JWT保护我的WebAPI。
所以,在我的创业课上,我只是做一些简单的事情,比如:
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
}
});
每件事都很好,只有一个例外。
当客户端传入无效或丢失的Bearer令牌时,WWW-身份验证响应头只是"Bearer“。
我想要自定义这个头,以包括我的授权服务器的地址和支持的授权类型。
更像是:WWW-认证: MyAuth href=url,grant_type=“支持-授权”或者其他什么.
做这件事最好的方法是什么?我很惊讶JwtBearerAuthenticationOptions类没有包含一个挑战属性。我可以解决这个问题,但我想知道Jwt中间件在这里是否有最佳实践。
发布于 2015-03-02 14:52:39
最后,我们使用OnApplyChallenge在OAuthBearerAuthenticationProvider中使用我们想要的值插入了WWW-身份验证头。
与…有关的东西:
app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions ...
Provider = new OAuthBearerAuthenticationProvider()....
OnApplyChallenge = (context) => context.OwinContext.Response.Headers.AppendValue(WWWAuthenticateHeader,values)
https://stackoverflow.com/questions/27822623
复制相似问题