UseOAuthBearerTokens 与 UseOAuthBearerAuthentication

UseOAuthBearerTokens vs UseOAuthBearerAuthentication

在我们的 Startup class 中,我配置了以下身份验证服务器选项:

OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
    AllowInsecureHttp = true,
    TokenEndpointPath = new PathString("/api/v1/token"),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
    Provider = new SimpleAuthorizationServerProvider()
};

在此之后,我们应该使用哪个选项来实际启用承载身份验证?网上好像有两种说法。

选项 1:

app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

选项 2:

app.UseOAuthBearerTokens(OAuthServerOptions);

我都测试过,结果是一样的。

这些选项有什么区别?我们应该什么时候使用哪个?

UseOAuthBearerTokens 扩展方法创建令牌服务器和中间件来验证同一应用程序中请求的令牌。

使用反射器来自源的伪代码:

UseOAuthAuthorizationServer(); // authorization server middleware
UseOAuthBearerAuthentication(ApplicationOAuthBearerProvider); // application bearer token middleware           
UseOAuthBearerAuthentication(ExternalOAuthBearerProvider); // external bearer token middleware