关于 Laravel 自带的 auth 多次登录 token 不会失效的问题?

项目中使用了laravel自带的auth
在用户登录后,再次调用登录接口,生成新的token,但是之前的token仍然有效,想要改掉它,找了下源码,没能成功
5.5的版本里看到了vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php 这个文件 里面貌似是有个attemt方法,像是登录的时候调用的那个方法,但是无奈与不是很理解laravel的依赖注入等,无从下手~ 还望有经验的朋友能够指点一下

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7

:joy: :joy: :joy:
有点儿伸手党的意思了...
感觉要搞投得先研究好它的服务注册机制

7年前 评论

如果你是说的 laravel/passport ,那么看这里

7年前 评论

@zedisdog 不是passport 是 这个https://learnku.com/docs/laravel/5.5/authentication/1308

7年前 评论

那个 authentication 也有事件

/**
 * 应用程序的事件监听器映射。
 *
 * @var array
 */
protected $listen = [
    'Illuminate\Auth\Events\Registered' => [
        'App\Listeners\LogRegisteredUser',
    ],

    'Illuminate\Auth\Events\Attempting' => [
        'App\Listeners\LogAuthenticationAttempt',
    ],

    'Illuminate\Auth\Events\Authenticated' => [
        'App\Listeners\LogAuthenticated',
    ],

    'Illuminate\Auth\Events\Login' => [
        'App\Listeners\LogSuccessfulLogin',
    ],

    'Illuminate\Auth\Events\Failed' => [
        'App\Listeners\LogFailedLogin',
    ],

    'Illuminate\Auth\Events\Logout' => [
        'App\Listeners\LogSuccessfulLogout',
    ],

    'Illuminate\Auth\Events\Lockout' => [
        'App\Listeners\LogLockout',
    ],
];

如果你能通过用户找到上一个token,那就能通过事件来处理。

7年前 评论

@zedisdog :joy: :joy: :joy: 看到过这部分,但是感觉可以的话应该可以在生成token的时候去做一下处理比较好。

7年前 评论

@zedisdog 而且也没有找到获取用户之前的token 的方法 :joy: :joy: :joy:

7年前 评论

@SquirrelNo 那你可能要重写 gaurd 了 :joy:

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!