【问题标题】:Laravel : How to invalidate all sessions of a user from redis and logged out from all devices?Laravel:如何使用户的所有会话从 redis 无效并从所有设备注销?
【发布时间】:2020-05-10 16:50:13
【问题描述】:

在 Laravel 5.2 中使用基于 Redis 的会话的应用程序。

需要从所有设备上注销用户,为此,使用 Session::getId() 获取会话 ID 并根据用户 ID 存储到数据库中。该方法是通过将所有用户维护的会话存储到数据库中来销毁 Redis DB 中的所有用户特定会话,以接受当前登录的会话。

当我从 Redis-CLI KEY '[value]' 获取用户的会话 id 时,键的值与使用 Session::getId() 获取的 id 不匹配。为此,无法从所有设备上注销用户。

我需要从 Redis 销毁用户的所有会话,以便所有登录的设备都将被注销。

请帮助我如何从 Redis 数据库中销毁用户所有会话,因为 Session::getId() 值和 Redis-CLI 键 [值] 不匹配。

【问题讨论】:

    标签: laravel session redis


    【解决方案1】:

    Laravel 附带了一个功能,可以让用户在除当前使用的设备之外的所有设备上注销:

    use Illuminate\Support\Facades\Auth;
    
    Auth::logoutOtherDevices($password);
    

    See more

    【讨论】:

    • 感谢您的回答,但它仅适用于 5.7 版本的 laravel,我使用的是 5.2
    • 我建议更新
    • 更新版本对于正在运行的产品来说风险很大,成千上万的用户正在使用它。你能再给我推荐一个吗?
    猜你喜欢
    • 2016-09-24
    • 2015-09-01
    • 1970-01-01
    • 2016-11-04
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2017-08-22
    相关资源
    最近更新 更多