使用php開發api接口,然后涉及到一個登錄問題,第一時間就想到了jwt,在機緣巧合下又結識了firebase/php-jwt,一開始很開心沒有遇到什么問題,但是過了段時間出現了明明登錄成功了。業務系統又重定向會登錄頁了一開始以為是緩存問題,但是該問題出現在不同的機器上,這是再甩鍋給緩存就有點說不過去了。
后來就檢查異常日志發現在jwt解簽的時候出現一段異常:Cannot handle token prior to 2019-09-27T16:10:27+0800
原來是api服務器的時間與業務系統所在的機器時間有些小偏差所致。
解決辦法:
第一種:把兩個服務器的時間同步成一致的
第二種:查看php-jwt的源碼提供了一個靜態變量$leeway,我們可以在解簽前JWT::$leeway+=15;解決問題(我使用的辦法)
嗯,就這樣,第一次使用php做開發,記錄一下。