Laravel 单设备登录

Laravel 单设备登录

https://laravel-china.org/articles/10605/laravel-single-device-login

前几天在 laracasts 看了laravel5.6的新功能视频 logoutOtherDevices 用于使在其他设备上处于活动状态的用户会话无效并“注销”,而不会使其当前设备上的会话无效。,今天抽空把它应用到了系统里,在这里记录下吧。
在使用此功能前需要先把 app/Http/Kernel.php web 中间件中的 \Illuminate\Session\Middleware\AuthenticateSession::class 注释取消掉。

LoginController 控制器中继承 Illuminate\Foundation\Auth\AuthenticatesUsers 类中的 authenticated 方法。

protected function authenticated(Request $request, $user)
{
    $this->guard()->logoutOtherDevices($request->password);
    return response()->json(['message' => '登录成功']);
}

logoutOtherDevices 接受两个参数,第一个参数是来自表单提交的数据,然后经过加密保存到第二个参数指定的字段里,在经过中间件储存 session

public function logoutOtherDevices($password, $attribute = 'password')
{
    if (! $this->user()) {
        return;
    }

    return tap($this->user()->forceFill([
        $attribute => Hash::make($password),
    ]))->save();
}
}

 

 

这样在用户登录成功后,即会注销其他设备上的会话而实现单设备登陆。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112926.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm配置(1)——解释器(interpreter)「建议收藏」

    Pycharm配置(1)——解释器(interpreter)「建议收藏」今天导入模块,发现出了很多错,要升级pip,但是我发现在新建的工程项目(PycharmIDE)中有pip,而我安装的Python3中,也有pip,那我升级哪一个呢?1、首先,遇到的问题是:已经安装python,dos窗口却提示“python不是内部命令或外部命令,也不是可运行的程序”解决方案:点击打开链接2、发现两者都是一样的,都是解释器(ProjectInterpreter)的问题先说一下,…

    2022年8月29日
    3
  • gridbagconstraints什么意思_java rectangle

    gridbagconstraints什么意思_java rectangle说明:GridBagLayout只有一个无参的构造器,要使用它就必须用setConstraints(Componentcomp,GridBagConstraintsconstraints)将它和GridBagConstraints关联起来!当GridBagLayout与无参的GridBagConstraints关联时,此时它就相当于一个GridLayout,只不过,用GridLayout布局的

    2025年10月15日
    4
  • jdk卸载不干净解决办法

    jdk卸载不干净解决办法Win7系统下安装jdk报错;错误信息:“ WindowsInstaller程序包有问题。此安装需要的DLL不能运行。请与您的支持人员或程序包开发商联系”。造成该问题的原因是系统以前安装过jdk,重新安装需要彻底卸载旧的jdk,这样重新安装才能成功。但是,打开控制面板——卸载程序,卸来卸去总是报错错误还是“ WindowsInstaller程序包有问题。此安装需要的DLL不能运行。…

    2022年6月29日
    87
  • ConcurrentHashMap实现原理及源码分析

    ConcurrentHashMap实现原理及源码分析一、ConcurrentHashMap跟HashMap,HashTable的对比HashMap不是线程安全:在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百度google或查看源码分析),导致get操作时,cpu空转,所以,在并发环境中使用HashMap是非常危险的HashTable是线程安全的:HashTable和HashMap的实现原理几乎一样,差别:1.Ha…

    2022年6月24日
    19
  • vscode查看源代码_vscode新建python项目

    vscode查看源代码_vscode新建python项目最近从pycharm转到了VScode,但是发现vscode不能跳转到源码,百度之后发现要装一个vscode的python的插件,插件就是「Pylance」。装好这个插件后应该可以使用pycharm一样的快捷方式连接到每个组件的源代码了,具体操作是:1.如果是windows系统,按住Ctrl键+鼠标点击待查看的方法或者类名2.如果是mac系统,按住Command键+…

    2022年8月23日
    27
  • Java IO流知识点总结

    Java IO流知识点总结本主要对java的IO流知识点做比较全面的总结,但是没有很深入阐述。

    2022年5月20日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号