古詩詞大全網 - 個性簽名 - 前端登陸實現

前端登陸實現

四種方式

Cookie 出現的原因: HTTP 協議是無狀態的,每次請求都會建立壹個新的鏈接,請求結束就會斷開鏈接,優點就是可以節省鏈接資源,缺點就是無法保存用戶狀態。Cookie 的出現就是為了解決這個問題。

Cookie 是存儲在瀏覽器中的,可以通過 Js 和 set-cookie 這個響應字段來進行設置。

cookie 的限制:

有了 cookie 之後,服務端就可以從客戶端獲取到信息,如果需要對信息進行驗證,那麽還需要 session

服務端在收到客戶端的請求之後,會在服務器中開辟壹片內存空間來存放 session

第壹次登陸之後,下次再訪問的時候就會攜帶這個 cookie,服務端就可以根據 sessionId 進行驗證用戶是否登陸(判斷這個 sessionId 和服務端保存的 sessionId 是否壹致,是否有這個 sessionId 的記錄或者記錄是否有效)

客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。這就是 Session。客戶端瀏覽器再次訪問時只需要從該 Session 中查找該客戶的狀態就可以了。

Token 是 服務器 生成的壹個字符串,作為客戶端請求的壹個令牌。第壹次登陸之後,服務器會生成壹個 Token 返回給客戶端,客戶端後續訪問的時候,只需帶上這個 Token 進行身份認證

缺點

JWT(Json Web Token)

服務端不需要存儲 Token 那麽服務端是怎麽驗證客戶端傳遞過來的 Token 是否有效的呢?

答案:

Token 並不是雜亂無章的字符串,而是通過多種算法拼接而成的字符串

header 部分指定了這個 Token 所使用的簽名算法

payload 部分表明了這個 JWT 的意圖

signature 部分為 JWT 的簽名,主要是為了讓 JWT 不被隨意的篡改

簽名的部分有兩個步驟

壹:

二:

最後的 Token 計算如下:

單點登陸指的是公司會搭建壹個公***的認證中心,公司裏的所有產品的認證都可以在這個認證中心中完成,壹個產品在認證中心認證之後,再去訪問其他產品時就不需要再次認證

這個時候,由於 a.com 存在已登錄的 Cookie 信息,所以服務器端直接認證成功。

這個時候由於認證中心存在之前登陸過的 cookie,所以不需要再輸入賬號密碼,直接從第四步開始執行

目前我們已經完成了單點登錄,在同壹套認證中心的管理下,多個產品可以***享登錄態。現在我們需要考慮退出了,即:在壹個產品中退出了登錄,怎麽讓其他的產品也都退出登錄?

原理也不難,其實就是在攜帶 ticket 去請求認證中心的時候,再去請求壹下認證中心的退出登陸的 api 即可

當某個產品 c.com 退出登陸時

sso 就是壹個集中地驗證系統。妳項目內請求時,向 sso 發壹個請求,他給妳個 token 妳扔到遊覽器緩存裏,請求的時候放在請求頭裏帶著。和其他驗證接口壹樣。 他好就好在,壹個賬號在不同系統裏都可以登錄,因為不同項目可以***用這個 token。並且通過 sso 集中管理壹些用戶信息,妳可以方便的拿用戶信息。

以微信為例子