(I w obliczu podobnej sytuacji w .NET, więc w związku z tym)
Nie, jeśli używasz OAuth nie masz napisać nową metodę sprawdzania poprawności tokenu. Jak OAuthBearerAuthenticationProvider to zrobić za kulisami
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);
}
}
});
(jak na moje doświadczenia). Ale jeśli chcesz, nie ma opcji, aby skonfigurować Provider w pliku „Uruchomienie”:
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new CustomOAuthBearerProvider()
});
„CustomOAuthBearerProvider” dziedziczy interfejs „IOAuthBearerAuthenticationProvider”, który posiada predefiniowane podpis dla RequestToken() metoda, a metoda ta jest wywoływana przed każda walidacja dla tokena. Więc myślę, że możesz go użyć do niestandardowych operacji sprawdzania poprawności w tokenie, a następnie wysłać token do sprawdzania poprawności OAuth.