JWT是一種可以在不同系統之間和客戶端和服務器之間安全傳遞信息的身份驗證和授權協議。JWT由三部分組成:header、payload和signature。
在使用JWT的過程中,我們需要將生成的token存儲在某個地方進行處理,這時候就有人會問:JWT的token要存mysql嗎?
可能會有人覺得將JWT的token存在MySQL中會比較安全,但事實上這并不是必須的。Token本身是具有完整性校驗和過期時間限制等安全機制的,因此只要保存在服務端內存中即可。如果需要提高安全性,可以使用加密處理,將JWT的token存儲在Redis、Memcache等緩存系統中。
如果我們一定要將JWT的token存儲在MySQL中,也可以創建一個用戶令牌表,用于存儲用戶的令牌信息。但是需要注意,由于JWT的過期時間和完整性檢驗可以通過signature實現,具有自我保護機制,因此需要在定期清理時自動刪除過期的token。