2 回答

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

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