1. 程式人生 > >laravel 5.3 單使用者登入簡單實現

laravel 5.3 單使用者登入簡單實現

需求描述

當前使用者只能在一個地方登入,即同一賬號不能再2個以上視窗登入,後登入者踢出前登入者。

設計思路

在使用者資料表中新增1個欄位,記錄當前登入用的session_id,當用戶登入的時候把session_id儲存到資料庫中,然後在中介軟體認證里加判斷,判斷當前使用者sesson_id是否和資料庫中的session_id相等,如果相等繼續向下執行,反之登出登入。

具體實現

1.首先在使用者表中新增欄位last_session,型別CHAR 40長度

2.在AuthController 控制器中實現父類方法authenticated方法,目的儲存當前使用者的session_id到資料庫中。

protected function authenticated($request,$user){
        $user->last_session = Session::getId();
        $user->save();
        return redirect()->intended($this->redirectPath());
    }

3.在Authenticate中間中加入判斷程式碼
if(Session::getId() != Auth::guard($guard)->user()->last_session){
            return redirect('/admin/logout');}

也可以在判斷程式碼塊中加入其它,如提示當前賬號在其它地方登入,然後登出當前登入等。

相關推薦

laravel 5.3 使用者登入簡單實現

需求描述 當前使用者只能在一個地方登入,即同一賬號不能再2個以上視窗登入,後登入者踢出前登入者。 設計思路 在使用者資料表中新增1個欄位,記錄當前登入用的session_id,當用戶登入的時候把session_id儲存到資料庫中,然後在中介軟體認證里加判斷,判斷當前使用者s

Laravel 5.3 使用內置的 Auth 組件實現多用戶認證功能

where rules turn number model err 種類型 ddl handler https://blog.csdn.net/kevinbai_cn/article/details/54341779 概述 在開發中,我們經常會遇到多種類型的用戶的認證問題,

javaWeb簡單登入sso實現方法

總結一個簡單的sso單點登入實現方法,先上一張思路圖:思路不復雜,在一個Filter中如下:String baseUrl="你的基礎系統路徑";//比如是120.24.270.95:8080 String host=request.getHeader("HOST"); S

Laravel 5.3 使用內建的 Auth 元件實現多使用者認證功能以及登陸才能訪問後臺的功能的一種實現方法

概述 在開發中,我們經常會遇到多種型別的使用者的認證問題,比如後臺的管理員和前臺的普通使用者。Laravel 5.3 內建的 Auth 元件已經能很好的滿足這項需求,下面大概記錄下使用方法。 另外,後臺頁面常常需要登入才能訪問,為了完成類似的功能,大家一般都

Laravel 5.3 不同使用者表登入認證-優化

需要優化的地方:不需要新增中介軟體,【後臺管理認證中介軟體】部分全部去掉,使用框架自帶的中介軟體傳參就行了。 Admin/LoginController.php 中修改中介軟體: $this->middleware('guest.adm

AJAX PHP無刷新form表提交的簡單實現(推薦)

username mime win root 支持 對象 希望 meta {} 下面小編就為大家帶來一篇AJAX PHP無刷新form表單提交的簡單實現(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ajax.php <

VUE中關於表提交的簡單實現

eat style OS 關於 select city ole temp console main.js import Vue from "../vue.js"; import App from "./App.js"; //啟動 new Vue({ el:"#ap

Laravel 5.3+ Auth::routes 驗證路徑

Laravel 5.3+ 開始,添加了Auth()::routes()路徑組,其中註冊了常見的驗證路徑,例如註冊,登入登出,以及密碼修改。 在web.php中,新增如下程式碼: Auth()::routes() 即可使用這些路徑。 而要檢視這些路徑具體包含了哪些,我們可以

Laravel 5.3+ 如何定義API路徑(取消CSRF保護)

從Laravel 5.3+開始,API路徑被放入了routes/api.php中。我們絕大多數的路徑其實都會在web.php中定義,因為在web.php中定義的路徑預設有CSRF保護,而API路徑預設沒有CSRF保護。在Laravel官網文件中寫到: Any HTML forms poi

CAS5.3登入服務端搭建與整合springboot

什麼是單點登入 單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 SSO是概念,實現SSO需要用到CAS框架 使用cas框架實現單點登陸 有多個不同伺服器的

Spring Security Oauth2 登入案例實現和執行流程剖析

線上演示 演示地址:http://139.196.87.48:9002/kitty 使用者名稱:admin 密碼:admin Spring Security Oauth2 OAuth是一個關於授權的開放網路標準,在全世界得到的廣泛的應用,目前是2.0的版本。OAuth2在“客戶端”與“服務提供商”之間

laravel 5.3 CURD

初學者的 CURD 控制器下的程式碼 路由設定 新增 /* * 新增 */ public function insert(){ input::all('name'); $name=$_PO

SSO登入實現

這種方式需要我們藉助一個單獨的SSO服務,專門做驗證用。而且我們還需要對於不同的站點的使用者要有一個統一的使用者資料。這種方式瀏覽器只需要儲存SSO服務站點的cookie資訊。將這個cookie資訊用於其他站點從而實現單點登入。我們暫且將這個SSO服務站點成為www.SSO

登入簡單原理(應用多系統)

單點登入原理與簡單實現 1、http無狀態協議  web應用採用browser/server架構,http作為通訊協議。http是無狀態協議,瀏覽器的每一次請求,伺服器會獨立處理,不與之前或之後

PHP 登入SSO實現方式詳解

SSO( Single Sign On ),即單點登入,是一種控制多個相關但彼此獨立的系統的訪問許可權, 擁有這一許可權的使用者可以使用單一的ID和密碼訪問某個或多個系統從而避免使用不同的使用者名稱或密碼,或者通過某種配置無縫地登入每個系統 。 對於大型系統來

掃碼登入 簡單實現

簡單原理是 伺服器生成唯一的 key  附帶到login 上使用者掃描 二維碼 並且訪問伺服器 伺服器反饋登入  狀態前端 頁面 每隔一段時間掃描 伺服器 當前的key是否掃描, 然後後續操作程式碼:package main import ( "fmt" "io" "

laravel 5.3 route.php檔案

在Laravel 5.3中,app/Http/routes.php檔案被移動到routes目錄下,並且被分割成兩個檔案:web.php和api.php。web.php中的路由應用了web中介軟體組,而

laravel-blog:由 Laravel 5.3 強力驅動的快速、優雅、強大的部落格系統

Laravel Blog 快速,優雅, 強大的部落格系統,由Laravel5.3強力驅動。點選 這裡 檢視. 這是一個我個人使用的部落格,也曾經使用Hexo 和 github pages 搭過網站,都是都不靈活。因此用Laravel寫了這個部落格。 我想說的是Laravel是最好的php框架。 後續

Laravel 5.3+ 自動新增建立時間與更新時間詳解

本文已經遷移至我的個人技術部落格: 在Laravel 5.3之前,migrations中的$table->timestamps()所建立的created_at及updated_at兩個col

其他系統與domino系統登入實現方式

 其他系統與domino系統單點登入的實現方式 【背景】 隨著企業中業務不斷增多,使用者處理不同的業務則需要頻繁的切換不同的系統進行操作,而使用者則需要記住各個系統的使用者名稱、密碼,頻繁的登入。如果各個系統間能夠進行單點登入,無疑會大大減少使用者重複輸入密碼的