【发布时间】:2014-05-30 10:00:31
【问题描述】:
我正在使用以下 OAuth 提供程序和选项:
UserManagerFactory = () => new UserManager<IdentityUser>(new UserStore<IdentityUser>(new ApplicationDbContext()));
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
AuthorizeEndpointPath = new PathString("/api/AccountOwin/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(2),
AllowInsecureHttp = true
};
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
Oauth Provider 类来自以下链接: https://github.com/gustavo-armenta/BearerTokenAuthenticationSample/blob/master/BearerTokenAuthenticationSample/Providers/ApplicationOAuthProvider.cs
我想实现刷新令牌提供程序,因此我将过期时间设置为 2 分钟。但我注意到 WEB API 即使在 2 分钟后也允许访问资源。
提前致谢!
【问题讨论】:
-
您是使用完整示例还是将其应用到您自己的代码中?您是否将 [Authorize] 属性应用于您正在访问的端点?
-
是的,我确定我使用的是 Authorize 属性。如果没有有效的令牌,我无法访问我的资源,但我将过期时间设置为 2 分钟,但之后我仍然可以使用该令牌访问资源。这就是为什么我对此感到好奇。在所有示例中,我看到每个人都将到期日设置为超过一天。
-
@HaveThunk 也许我用错了这个例子?这很奇怪,我仍然有问题。
标签: .net oauth owin asp.net-web-api2