我正在.net核心中创建两个Web应用程序,第一种是实体框架db方法,而.net核心中的另一个Web应用程序仅针对使用剃刀页面的客户端。我的问题是我将api方法保持为授权状态,并在用户登录后生成访问令牌和刷新令牌。我的访问令牌在20分钟后过期,因此我必须静静地调用刷新令牌。我无法在哪里调用刷新令牌,因此无论何时我的访问令牌过期,它都会调用刷新令牌。
在ajax错误块中,我正在调用刷新令牌,一个它将生成新令牌,然后在5秒钟的睡眠后再次调用main方法。如果状态码为200,则返回数据。但是该方法每次返回401状态码。
error: function (request, textStatus, errorThrown) {
ErrorHandleFunction(request, textStatus, errorThrown);
sleep(5000).then(() => {
Myfunction();
});
出现错误时它将调用刷新令牌,此后它将进入我的函数,因此再次将访问令牌的到期时间设置为20分钟。当前它正在循环刷新令牌调用。
答案 0 :(得分:0)
您需要实现自己在WebApi中生成刷新令牌的逻辑。当您向WebApi提出请求时,您应该获得401 Unauthorized。也许是头记录来解释令牌已过期?这样,您将在前端知道需要使用过期的令牌来调用“ RefreshToken”端点,以获取刷新令牌。
这里是一个示例: https://www.blinkingcaret.com/2018/05/30/refresh-tokens-in-asp-net-core-web-api/