Python JWT允许尝试使用多种算法进行解码:
jwt.decode(encoded, 'secret', algorithms=['HS512', 'HS256'])
是否可以使用此算法列表和机密列表配对?在我的用例中,有一些后备算法,但是它们各自使用不同的密钥。
答案 0 :(得分:0)
您始终可以使用try catch逻辑进行回退,例如::
def jwt_decode(encoded, pairs):
for alg, secret in pairs:
try:
return jwt.decode(encoded, secret, alg)
except jwt.SomeError:
pass
raise jwt.SomeError
应将SomeError
替换为正确的错误。
然后使用此jwt_decode
函数进行后备:
jwt_decode(encoded, [('HS512', 'secret-1'), ('HS256', 'secret-2')])