(Tôi phải đối mặt với tình huống tương tự trong Net, vì vậy trong bối cảnh đó)
Không, nếu bạn đang sử dụng OAuth bạn không phải viết Validate phương pháp mã mới. Như OAuthBearerAuthenticationProvider làm điều này đằng sau hậu trường
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = context =>
{
context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue"));
return Task.FromResult<object>(null);
}
}
});
(theo kinh nghiệm của tôi). Nhưng nếu bạn muốn, có tùy chọn để cấu hình nhà cung cấp trong bạn "khởi động" file:
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new CustomOAuthBearerProvider()
});
"CustomOAuthBearerProvider" kế thừa "IOAuthBearerAuthenticationProvider" giao diện mà đã xác định trước chữ ký cho phương pháp RequestToken(), và phương pháp này được gọi là trước bất kỳ xác thực nào cho mã thông báo. Vì vậy, tôi nghĩ bạn có thể sử dụng nó cho các hoạt động xác thực tùy chỉnh của bạn trên Mã thông báo và sau đó gửi mã thông báo để xác thực OAuth.
Nguồn
2016-04-14 13:30:37