什么是Token?
Token可以理解為令牌,服務端通過驗證Token,來判斷你是否有這個操作的權限。Token的重要特性是有效性,一般Token只在一定時間范圍內有效。下圖是登錄模塊的一個流程圖,展現出Token的一個基本應用。
圖片來自網絡,侵權立刪
簡單Token的實現
一個簡單的Token,可以由密鑰,時間戳,內容生成。在網絡傳輸過程中,一般通過base64_encode編碼傳輸。服務端通過base64_decode解碼之后,在驗證Token的有效性。Token的一種生成方式如下。
Token存儲在哪里?
Token根據實際應用類型不同,可以分為一下三種方式存儲。
-
存在MySQL類型數據庫中。這樣做的好處,可以存儲的數量大,數據持久化。
-
存在內存中,如Cache。優點就是,驗證速度快。
-
不存儲,每次服務器通過算法驗證Token的有效性。
在github開源項目:https://github.com/moyiblog/JWT