cookie之登陸用戶憑證

簡述

說到cookie,我想前端開發都有據說過吧,cookie的本質就是用來存儲數據的,但不能存太多數據。 cookie大多數是用來辨別用戶身份的,但不止這一種用途,這就要看具體項目了。 今天咱們要說的就是怎麼經過cookie,能讓服務器知道你就是某用戶。 你們都知道http是無狀態的,每次請求都是獨立的,是沒辦法直接判斷某個請求是不是同一個用戶發起, 這時候cookie就起做用的,當用戶第一次登錄這個網站的時候能夠在響應頭設置一個cookie, 下次用戶在發起http請求就會自動帶上這個cookie,服務器就能夠經過這個cookie來找到這個用戶的信息。 下面咱們來看一下經常使用的幾種驗證用戶身份的方法前端

一、使用userId 做爲登陸用戶憑證

在登陸成功的時候服務器在cookie存入一個userId,下次這個用戶再發http請求的時候 把這個userId帶上就能夠知道這個用戶是誰了。可是這種方法很是不安全, 若是單純的用一個userId做爲憑證,容易被黑客盜用,由於只有一個userId做爲憑證,在任何電腦只要把cookid中的userId改爲別人的userId就能夠直接模擬用戶了安全

二、userId + 簽名(sign) 做爲登陸用戶憑證

經過上面知道userId 能夠用做用戶的登陸憑證 單純的經過userId 判斷用戶這是很是不安全的。 因此在登陸成功的時候服務器在cookie存入一個userId和一個簽名值。 userId + 簽名(sign是經過userId算出的加密串,是不可逆的),這樣身份就不容易盜用, 當用戶向服務器發請求的時候,會把userId和簽名一塊兒發送給後臺, 只有後臺驗證userId和簽名是匹配的就能夠判斷就是當前用戶,而不是別人服務器

三、使用sessionId 做爲登陸用戶憑證

userId + 簽名(sign) 做爲登陸用戶憑證,仍是會把用戶信息曝露出來, 還有一種方法,在用戶登陸的時候服務器在cookie中存一個sessionId(經過userId算出的加密串),並把這個用戶的信息和這個sessionId關聯, 用戶每次登陸的時候帶上這個sessionId就能夠了, 後臺經過這個sessionId就能夠查到關聯的用戶信息cookie

相關文章
相關標籤/搜索