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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

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

5年前 评论

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

5年前 评论

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

5年前 评论

那个 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,那就能通过事件来处理。

5年前 评论

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

5年前 评论

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

5年前 评论

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

5年前 评论

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