我为移动应用解决方案构建了MVC后端。验证是通过OWIN和OAuth 2.0实现的。对令牌进行身份验证后,从我的服务器中提取该令牌即可正常工作。但是,在我的应用程序静止了几分钟后,每个呼叫都被回答为“ 401,未授权”。
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天后而不是几分钟后过期。
有人可以帮我吗?
我的IIS服务器不是Webfarm的一部分,但是出于某些原因,有必要生成machineKeys并将它们添加到web.config。之后,问题就消失了。