使用OAuthBearerTokens与UseOAuthBearerAuthentication

时间:2015-01-20 14:53:04

标签: asp.net-identity asp.net-web-api2 owin asp.net-identity-2 katana

在我们的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);

我对它们进行了测试,结果是一样的。

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

1 个答案:

答案 0 :(得分:52)

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

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

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