我在项目中使用基于身份令牌和angularjs,令牌在本地环境中正常工作,但在15分钟后在服务器中到期。我在中间件中设置了AccessTokenExpireTimeSpan = TimeSpan.FromDay(14)并检查令牌中的expire_in值,expire_in:1209599等于14天。
显然一切都是正确的
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() {
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
Provider = new ApplicationOAuthProvider(PublicClientId),
};
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
我的服务器是Plesk
我的问题:
1-我应该在其他地方设置此设置(过期超时)吗? OAuth2 WebApi Token Expiration
2-你真的必须使用RefreshToken吗? http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/
3-我应该配置Plesk ???
4-与虚拟服务器和机器密钥相关??? asp.net identity expire bearer token after 20 min
感谢您提供更多详情
答案 0 :(得分:1)
一段时间后,我将解决此问题。 您必须生成适当的机器密钥,并将其添加到项目的web.config。
您可以在以下位置生成机器密钥:http://www.allkeysgenerator.com/Random/ASP-Net-MachineKey-Generator.aspx
答案 1 :(得分:1)
如阿敏所说,这是正确的
您必须生成适当的机器密钥,并将其添加到项目的web.config。
您可以在以下位置生成机器密钥:http://www.allkeysgenerator.com/Random/ASP-Net-MachineKey-Generator.aspx
所以,我生成了如下密钥:
<machineKey validationKey="4E6D929B83FD607A895C1E65DDEB9E76E67D06291A040817EF59FBE59126ECA038266C20D8D649C94838A4157D40A9DAE3070755EF31AED17BC39DF0BD1D88CD" decryptionKey="83B540F6E86C959734C7C053A97F15E07AC7789100D26E7420B70597C66A84CD" validation="SHA1" decryption="AES" />
并添加到<system.web>
标签内。
谢谢!