2 回答

TA貢獻1794條經驗 獲得超7個贊
對于 api 來說,token 通過 header 傳輸,對應的用戶數據放在 redis 里,這樣移動端保存 token 比較方便,移動端保存 cookie 不是很容易,瀏覽器里還是用 cookie + session 方便,集群中共享 session 不是啥問題。

TA貢獻1802條經驗 獲得超4個贊
在存儲過等同的情況下,在只是簡單運用上,我只能說session與token沒有本質的區別,二者不都是一串被加密過的字符串,拿他來做校驗都一樣。
以上,是因為你把token拿來當作用戶是不是當事人做這么一個簡單的校驗的情況下。
當然,如果我們拋開一些比較極端的操作,token比session也有很大的區別:
token可以存在任何位置(cookie、local storage)
token比session更容易跨域。
CORS預檢查時token比較更簡單。
token有更多的控制權,比如當token過期時,你可以拿通過刷新token,讓用戶一直保持有效登錄。
等……其實如果你只是單純拿著token做一下自己網站內用戶登錄檢驗的話是無太多區別的。
但假如token指的是OAuth Token提供認證和授權這類機制的話,那么就可以把session甩開N條街了,甚至是已經完全是兩種不同的概念。
假設有這么一個場景,你們用戶在你們網站產生的訂單,而另一家公司是專業ERP公司;而你的用戶希望他的訂單同時授權給這家ERP公司使用的情況下,難道你希望用戶拿在你家網站的用戶名和密碼給這家ERP公司嗎?
這時候OAuth Token就有意義了,OAuth Token的授權大概是這樣的:
ERP需要調用我們提供的登錄界面。
用戶輸入用戶名和密碼后,我們再向ERP發送一個TOKEN。
ERP拿TOKEN換數據。
總之,如果你只是在自己網站內部上使用二者沒有什么太多區別。而如果你的API是在不同終端上使用,token會更方便。
- 2 回答
- 0 關注
- 2199 瀏覽
添加回答
舉報