【问题标题】:Laravel: After upgrade JWT then session expire become too oftenLaravel:升级 JWT 后,会话过期变得过于频繁
【发布时间】:2021-04-08 02:23:04
【问题描述】:

所以,我在 Laravel v5.8 上升级了我的 jwt 包,由于安全问题,我需要升级。但是,升级jwt 并不容易,需要反复试验。最后,我从github repository here 找到了解决方案,然后jwt 升级完成

===========

解决方案总结:

(1) 通过composer require tymon/jwt-auth:1.0.* --prefer-source升级jwt

(2) 在config/app.php 中更改以下行,之前:

'providers' => [
...
'Tymon\JWTAuth\Providers\JWTAuthServiceProvider' ,
...
]

进入

'providers' => [
...
'Tymon\JWTAuth\Providers\LaravelServiceProvider' ,
...
]

(3) 将implements JWTSubject 添加到User 模型类中

(4) 将以下行添加到User 模型类中:

public function getJWTIdentifier()
{
   return $this->getKey();
}

public function getJWTCustomClaims()
{
   return [];
}

(5) 运行php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

===========

但是,有副作用

现在,每个登录会话都不会持续很长时间。

在此修复之前,登录会话有时需要一个月才能过期,但现在只需要几个小时。此外,除了上述之外,没有添加其他逻辑/编码。

有什么想法/解决方案吗?

提前谢谢你...

【问题讨论】:

  • 您没有向我们提供与该实际问题相关的太多信息(即调试结果、jwt 包的配置,甚至“每个登录会话不会持续多久。”都是准确的。我们是在谈论下一页加载时的一个小时 5 分钟吗?也就是说,我将首先检查当前版本的 repo 是否需要一些设置文件,这些设置文件要么丢失,要么缺少值,要么已从您的很旧的版本。

标签: php laravel apache authentication jwt


【解决方案1】:

生存时间在config/jwt.php 中定义。

查看'ttl' => env('JWT_TTL', 60) 的行,这意味着默认情况下,令牌有效期为 1 小时。

如果您还没有,请务必运行以下命令来发布包配置文件:

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

【讨论】:

  • 嗨,谢谢。我会试试的
猜你喜欢
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2012-06-19
  • 2017-11-08
  • 2018-03-01
  • 1970-01-01
  • 2017-10-05
  • 2015-01-17
相关资源
最近更新 更多