在我们的Startup
课程中,我配置了以下身份验证服务器选项:
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);
我对它们进行了测试,结果是一样的。
这些选项有什么区别?我们什么时候应该使用哪个?
答案 0 :(得分:52)
UseOAuthBearerTokens
扩展方法创建令牌服务器和中间件,以验证同一应用程序中的请求令牌。
使用反射器的源代码伪代码:
UseOAuthAuthorizationServer(); // authorization server middleware
UseOAuthBearerAuthentication(ApplicationOAuthBearerProvider); // application bearer token middleware
UseOAuthBearerAuthentication(ExternalOAuthBearerProvider); // external bearer token middleware