拉拉维尔护照:增加"laravel_token"饼干过期时间



我在项目中实施了Laravel Passport,除了存储令牌的cookie到期时间外,一切正常(仅1小时(。

我的项目包括一个为前水疗应用程序(VUE(的后端Laravel 5.8 API(带有Laravel Passport(。

我应用程序的用户可以使用带有vue组件的页面成功登录,该页面与用户凭据一起提出发布请求,如果成功完成登录,则将用户重定向到新的URL(App Home( - 此重定向是创建" laravel_token" cookie的get请求 - 由CreateFreshApiToken中间件创建。

从现在开始,用户可以通过Ajax呼叫获得应用程序内部的任何地方,并且应用程序组件所需的所有数据(Laravel将注意到这些AJAX调用中的cookie" laravel_token"的存在用户使用该cookie中存在的JWT(。

我的问题是:

用户登录时创建的" laravel_token" cookie的生命只有1小时。因为这是一个水疗中心,所以这个cookie永远不会更新(由新小时的新小时交换(...因此,一小时后,当需要向后端Laravel服务器执行新的Ajax请求时,它将收到未经身份验证的响应 - 这是有道理的,因为" laravel_token" cookie已过时。

您如何处理此问题?

我知道,我可以通过在此cookie到期之前对页面的完整刷新/重新加载来刷新此cookie,但这不是用户体验的好解决方案。

我无法打电话给这个cookie刷新这个cookie,因为这是一个水疗中心,我没有客户端_id,这是客户端的秘密……而且因为不仅此cookie是httponly,而且还在由Laravel加密 - 因此,我无法使用JS。

唯一的解决方案会增加此cookie的寿命(例如,从1小时到1年(?您看到这个问题吗?我在哪里可以设置此cookie到期时间?我需要扩展ApiTokenCookieFactory类吗?

我希望用户被登录,直到他故意执行注销请求或Access_Token到期(在我的情况下,我使用的是Laravel Passport默认值,是长期以来的1年寿命(。

如果有人可以帮助我解决这个问题。

如果您看到我没有做正确的方式,我也很感谢您的评论。

非常感谢!

根据 ApiTokenCookieFactorylaravel_token cookie的到期时间正在从会话生命周期值中获得。好吧,只需更改.env中的SESSION_LIFETIME的值

最新更新