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中文網其他相關文章!