1. 問題背景
最近在協助團隊小盆友調試一個驗簽問題,結果還“節外生枝”
了,原來不是簽名過程的問題,是token的問題。
當你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.”
,是不是也會產生錯覺?
2. 解決過程
看到JWT,博主立刻想到網關某個地方的問題,遂按圖索驥一番,果然找到了。原來是這行代碼的問題:
/**此處secret指appSecret,token是客戶端提供的token*/
Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
也就是這行代碼,在解析客戶端提交的token的時候,發生了異常。所以此刻,該怎么辦?try一下唄,避免未知異常,提前catch并反饋客戶端。
3. 總結經驗
我們在使用JWT做接口鑒權時,通常會校驗token是否為空,是否正確等。如果解析token失敗時,即會觸發以上exception。