關於token的建立 儲存以及認證

2021-09-26 03:55:23 字數 982 閱讀 4851

http請求是種無狀態的請求,每乙個http請求之前都沒有關聯,而在日常中,我們常常需要訪問一些受限的頁面,比如,登陸網易雲之後,訪問自己收藏的歌單,或者幹別的事,每次都帶了個http請求,之前說了http是無狀態的,就是說伺服器只有一次性的記憶,之前登陸成功,但你發起下一次請求時,伺服器可不會記得你是否完成了認證,這時候就需要有一種機制,在每次訪問時,告訴伺服器,***已經完成了認證,cookie和token就可以幫我們做這個事

關於token的設定

token的作用是提供一種可靠的認證方式,可以防止跨站請求偽造,一般在使用者登陸之後,生成乙個token返回給http client,然後通過一定方式儲存,在訪問受限頁面時,攜帶這個token,這樣,伺服器就知道你完成了認證

但是,這樣又有乙個問題,伺服器說,我怎麼知道token是真的還是假的(搞siao,你自己給的token你不知道?),好吧,伺服器記性不好,解決這個問題的方式有兩種:

伺服器又開始抱怨,我使用者有幾十萬,難道還要乙個個的給他們儲存token嗎,好吧,乙個個儲存的,的確是有他的弊端,使用者規模大起來,維護起來很不方便,想想其他辦法吧

其他辦法:

為了確保安全性,token採用md5或者sha系列(sha1,sha256)方式加密,通過對使用者名稱加上其他字串(金鑰)的方式完成加密,然後在訪問受限頁面時攜帶token,並且在頭部攜帶使用者名稱,然後到了伺服器這邊,進行校驗,即用使用者名稱+金鑰,採用相同的加密方式加密,然後與token比對,如果一樣,就說明這個token是真的

2.token的過期時間設定

這個的話,可以利用cookie,畢竟瀏覽器還是需要儲存下token的,這時候可以利用cookie,cookie有乙個過期時間設定,這樣過期時間的問題也解決了

總結一下:1.token的生成,使用者名稱+金鑰,金鑰可以是固定的字串

2.token的認證,伺服器端,獲得的使用者名稱+金鑰加密,然後與token核對

3.token的儲存,儲存在cookie

4.token的過期時間設定,利用cookie的過期時間

關於前端儲存token儲存位置的問題

一.我們首先要知道vuex,localstorage和sessionstorage區別 參考文章 1 localstorage 優點 a,localstorage生命週期是永久,這意味著除非使用者顯示在瀏覽器提供的ui上清除localstorage資訊,否則這些資訊將永遠存在。b,相同瀏覽器的不同頁...

關於token的理解

什麼是token token的意思是 令牌 是服務端生成的一串字串,作為客戶端進行請求的乙個標識。當使用者第一次登入後,伺服器生成乙個token並將此token返回給客戶端,以後客戶端只需帶上這個token前來請求資料即可,無需再次帶上使用者名稱和密碼。簡單token的組成 uid 使用者唯一的身份...

token的建立和使用

獲得token的方法 string usertoken getusertoken public string getusertoken type dateutils.gettimestampbymillis 儲存使用者變數到伺服器全域性變數中 string uniqueid 後台根據token獲得使...