Laravel是一套簡潔、優雅的PHP Web開發架構(PHP Web Framework)。它可以讓你從麵條一樣雜亂的程式碼中解脫出來;它可以幫你建立一個完美的網路APP,而且每行程式碼都可以簡潔、富於表達力。
簡單說一下我的邏輯,我也不知道我理解sso對不對。
假如三個網站 a.baidu.com b.baidu.com c.baidu.com
a.baidu.com 作為驗證使用者登入帳號。
b和c作為客戶端(子系統)。
b和c需要登入的時候跳到a,並且攜帶參數source指明登陸後跳躍的連結。
a網站就是普通的登陸方式(校驗使用者密碼),校驗成功後做一些處理。需要產生一個ticket,具體怎麼生成都可以,只要安全就好了。然後儲存到Cache裡面。這裡有疑問,後面總結。登陸成功後直接跳轉到(url就可以了。
``` php private function getTicketUrl(\)source) { \(ticket = md5(time()+key); Cache::put(\)ticket, $user, 120); $url = $source . '?ticket=' . $ticket; return $url; }
假如說a站帶著ticket跳到b站(b.baidu.com?ticket=xxxxxxxxxxxxxxxx```)
b站做一個全局的過濾器,接受這個ticket然後請求a站驗證ticket是否為a生成的。到用戶UID進行登陸。
2.假如b站現在跳到c站,由於b站活躍比較頻繁,session一直都在,而a站的緩存時間極有可能已經過期了,此時從b站跳到c站,c站跳到a站去判斷登陸,結果發現已經失效了,還是得登陸。 所以這是有問題的,由於我們業務模組相關性差,不會隨意跳轉,所以暫不考慮這樣的問題。確實是我的一個問題。點登入的PHP實作方法(Laravel框架)相關文章請關注PHP中文網!