首頁 >常見問題 >token error什麼意思

token error什麼意思

(*-*)浩
(*-*)浩原創
2020-01-07 14:19:5149125瀏覽

token error什麼意思

token error是令牌錯誤的意思。

Token 是在服務端產生的。如果前端使用使用者名稱/密碼向服務端請求認證,服務端認證成功,那麼在服務端會回傳 Token 給前端。前端可以在每次請求的時候帶上 Token 證明自己的合法地位                          (推薦學習:phpstorm

可以解決哪些問題呢?

Token 完全由應用程式管理,所以它可以避開同源策略

Token 可以避免CSRF 攻擊(http://dwz.cn/7joLzx)

#Token 可以是無狀態的,可以在多個服務間共用

Token 是在服務端產生的。如果前端使用使用者名稱/密碼向服務端請求認證,服務端認證成功,那麼在服務端會回傳 Token 給前端。

前端可以在每次要求的時候帶上 Token 證明自己的合法地位。如果這個 Token 在服務端持久化(例如存入資料庫),那它就是一個永久的身份令牌。

無論是從安全的角度考慮,或是從吊銷的角度考慮,Token 都需要設有效期限。

那麼有效期限多長合適呢?

#只能說,根據系統的安全需要,盡可能的短,但也不能短得離譜——想像一下手機的自動熄屏時間,如果設定為10 秒鐘無操作自動熄屏,再次點亮需要輸入密碼,會不會瘋?

如果你覺得不會,那就親自試一試,設定成可以設定的最短時間,堅持一週就好(不排除有人適應這個時間,畢竟手機廠商也是有使用者體驗研究的)。

然後新問題產生了,如果使用者在正常操作的過程中,Token 過期失效了,要求使用者重新登入…使用者體驗豈不是很糟糕?

為了解決在操作過程不能讓使用者感到Token 失效這個問題,有一個方案是在伺服器端保存Token 狀態,使用者每次操作都會自動刷新(延遲) Token 的過期時間-Session 就是採用這種策略來保持使用者登入狀態的。

然而仍然存在這樣一個問題,在前後端分離、單頁 App 這些情況下,每秒種可能發起很多次請求,每次都去刷新過期時間會產生非常大的代價。

如果 Token 的過期時間被持久化到資料庫或文件,代價就更大了。所以通常為了提升效率,減少消耗,會把 Token 的過期時保存在快取或記憶體中。

以上是token error什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn