我收到了由使用jjwt模塊的java程序創建的JWT令牌。 現在,當我嘗試使用pyjwt驗證令牌時,它會拋出異常。在python中轉換由Java JWT創建的JWT令牌
import jwt token
token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMDAiLCJyb2xlcyI6IkJVU0lORVNTVVNFUiIsIm1vZGUiOiJzdG9yZWFwcCIsImlhdCI6MTQ5NDg1ODk4MCwiZXhwIjoxNDk0ODY0OTgwfQ.ckFnGv1NT-Ui2S90DNr50YoHSXc1ZLBNnEErnGMWL-E'
secret ='123456AB'
jwt.decode(token,secret,algorithms='HS256')
Traceback (most recent call last): File "", line 1, in File "/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jwt.py", line 64, in decode options, **kwargs) File "/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jws.py", line 116, in decode key, algorithms) File "/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jws.py", line 186, in _verify_signature raise DecodeError('Signature verification failed') jwt.exceptions.DecodeError: Signature verification failed
如果我使用jwt.io同樣的道理,使用Base64加密選項,則似乎工作。
它工作得像一陣微風!謝謝。 java jjwt包沒有清楚地提到我們提供的密鑰被假定爲base64編碼的字符串。 – Palaz
很高興提供幫助,如果此答案解決了您的問題,請通過單擊答案旁邊的複選標記將其標記爲已接受。有關更多信息,請參閱:https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。 –