Python JWT解码-指定与算法列表配对的多个机密吗?

时间:2018-07-26 19:08:32

标签: python encryption jwt

Python JWT允许尝试使用多种算法进行解码:

jwt.decode(encoded, 'secret', algorithms=['HS512', 'HS256'])

是否可以使用此算法列表和机密列表配对?在我的用例中,有一些后备算法,但是它们各自使用不同的密钥。

1 个答案:

答案 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')])