84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
一般有哪些做法?如果保存在localstorage 具體保存什麼資訊呢?
存token,事實上不是存登入狀態,而是存呼叫介面的token,只要token存在且沒有過期,就認為仍舊在登入狀態。
保存在伺服器的session上面
token用於使用者登入檢查,他只是個ID,具體內容在服務端。
登入狀態其實沒有所謂的「狀態」。因為http本身就是沒有狀態的。所以客戶端每次向伺服器端發起請求,伺服器端都要認證。
第一次:使用者提供使用者名稱和密碼認證,伺服器端透過"使用者名稱+密碼"對使用者進行認證。通過後會伺服器會產生一個認證標識。伺服器端會保存這個認證標識,並且把認證標識回應給客戶端,客戶端也要保存這個認證標識。
第二次到第n次:客戶端代理使用者以已儲存的認證標識向伺服器發起請求,伺服器端透過"認證標識"對使用者進行認證。
至於認證標識保存在客戶端的cookie裡還是localstorage,使用session機制還是自訂的token機制。都只是一個具體的實現方案。
如果是使用瀏覽器,通常cookie+session。如果是接口,例如app,通常自訂一個token機制。
為什麼要這麼做呢?因為每個請求都讓用戶輸用戶名和密碼的話,用戶會瘋。
所以客戶代理(瀏覽器),代替使用者。認證標識代替使用者名稱和密碼。
各種技術實現方案無非就是出於安全和效率考慮的
本質上,和使用者每次輸使用者名稱和密碼沒什麼區別
存token,事實上不是存登入狀態,而是存呼叫介面的token,只要token存在且沒有過期,就認為仍舊在登入狀態。
保存在伺服器的session上面
token用於使用者登入檢查,他只是個ID,具體內容在服務端。
登入狀態其實沒有所謂的「狀態」。因為http本身就是沒有狀態的。所以客戶端每次向伺服器端發起請求,伺服器端都要認證。
第一次:使用者提供使用者名稱和密碼認證,伺服器端透過"使用者名稱+密碼"對使用者進行認證。通過後會伺服器會產生一個認證標識。伺服器端會保存這個認證標識,並且把認證標識回應給客戶端,客戶端也要保存這個認證標識。
第二次到第n次:客戶端代理使用者以已儲存的認證標識向伺服器發起請求,伺服器端透過"認證標識"對使用者進行認證。
至於認證標識保存在客戶端的cookie裡還是localstorage,使用session機制還是自訂的token機制。都只是一個具體的實現方案。
如果是使用瀏覽器,通常cookie+session。如果是接口,例如app,通常自訂一個token機制。
為什麼要這麼做呢?因為每個請求都讓用戶輸用戶名和密碼的話,用戶會瘋。
所以客戶代理(瀏覽器),代替使用者。認證標識代替使用者名稱和密碼。
各種技術實現方案無非就是出於安全和效率考慮的
本質上,和使用者每次輸使用者名稱和密碼沒什麼區別