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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 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年前 评论

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