我实现了一个OAuth登录流程,当我在ASP.Net应用程序中的本地环境中运行时,该流程非常有效。
但是,当我在外部服务器上发布我的api时,会发生一种奇怪的行为。
看看发生了什么,我发布了api,用我的手机登录我的应用程序,一切看起来都不错。如果我关闭应用程序20分钟并将其打开,则所有内容都会重新加载,我的访问权限仍然被授予。现在,如果我关闭应用程序一小时并尝试将其打开,我会收到错误400.即使是401也未经授权访问。
我检查了什么:
也许我的令牌有一个很短的失效日期,但你可以在设置中看到它的12小时
OAuthAuthorizationServerOptions OAuthServerOptions =
new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/Token"),
AccessTokenExpireTimeSpan = TimeSpan.FromHours(12),
Provider = new SimpleAuthorizationServerProvider(),
RefreshTokenProvider = new SimpleRefreshTokenProvider(),
};
我甚至实现了刷新令牌系统,所以如果令牌无效它刷新令牌,再次,它在dev中工作。但在生产中,它只能工作20分钟,然后我得到错误400。
我很确定它与服务器的缓存有关,我想上下文正在被清除。
所以我的问题是:有没有人得到类似于这个的情况以及解决方案是什么?