【发布时间】: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