基于身份令牌的令牌在服务器上15分钟后过期,但在本地工作

时间:2017-12-10 06:04:55

标签: angularjs authentication oauth asp.net-identity access-token

我在项目中使用基于身份令牌和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

感谢您提供更多详情

2 个答案:

答案 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>标签内。

谢谢!