我正在用JWT构建我的第一个API。我正在使用这个样板项目:https://github.com/krisanalfa/lumen-jwt在Laravel上使用JWT刷新令牌的流程流明
我设法使它工作正常,但我有一个很大的问题:用户令牌在一段时间后过期,将用户从应用程序中注销。我已阅读该项目的文档,致电/api/auth/refresh刷新令牌,但现在看来它有两个主要缺点:
1)您必须制作一个只需要调用API来刷新令牌,我会想象你需要设置一个计时器来每隔X分钟(令牌到期时间)调用它。
2)如果用户关闭计算机3小时,当他重新打开计算机时,令牌已经过期,导致刷新不可用,并将用户关闭。
由于我是新手,我错过了什么?我怎样才能使令牌刷新周期工作没有这些缺点?
我试图做到这一点,但显然当我呼叫Refresh时,Dingo正在检查令牌有效性,并且我仍然收到消息:“令牌已过期”。任何想法可能发生什么? – raphadko
这是因为刷新路径'api.auth.refresh'位于'api.auth'中间件组中。所以中间件在它到达控制器路由之前正在检查有效性。如果你将它移到外面,它可能会起作用。 – fubar
我正在使用jwt.refresh中间件,对第一个请求很好,然后我无法读取响应中的新令牌。当我做console.log(request.getAllResponseHeaders());它不显示令牌,只显示“Content-Type:application/json Cache-Control:private,must-revalidate”。任何想法如何阅读它? – raphadko