我为移动应用程序解决方案构建了一个MVC后端。使用OWIN和OAuth 2.0实现身份验证。在验证令牌后,从我的服务器中取出,工作正常。但在我的应用程序闲置几分钟后,每次通话都会收到“401,Unauthorized”的回复。
public void ConfigureAuth(IAppBuilder app){
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active
};
app.UseOAuthBearerTokens(OAuthOptions);
}
我的理解是,令牌应在14天后过期,而不是在几分钟后过期。
有人可以帮我吗?
答案 0 :(得分:0)
我的IIS服务器不是Webfarm的一部分,但是由于某些原因,有必要生成machineKeys并将它们添加到web.config。之后,问题就消失了。