0

有没有办法设置由 Flask-JWT-Extended 的 create_access_token 生成的 JWT 的 iss 声明?

我试图将 iss 声明放在 create_access_token 的参数“user_claims”下:

access_token = create_access_token(
   identity=data['username'],
   expires_delta = timedelta(seconds=JWT_LIFE_SPAN),
   user_claims={'iss': ISSUER}
)

但是,当我从资源服务器端使用 PyJWT 解码令牌时,它看起来像这样:

{'iat': 1597581227, 'nbf': 1597581227, 'jti': '4e6c9677-d698-421c-91c4-0b2f3a6da4e9', 'exp': 
1597583027, 'identity': 'asdf', 'fresh': False, 'type': 'access', 'user_claims': {'iss': 
'sample-auth-server'}}

我试图从docs中查找配置选项,但我找不到任何设置 iss 的选项。有一个 iss 集,但它在 user_claims 下。我想要完成的是将其设置为 JWT的注册声明之一。

4

1 回答 1

1

我认为您可以使用encode_access_tokenapi 并使用颁发者创建编码的访问代码。

例子:

 encode_access_token(
    identity=data['username'],
    issuer=JWT_ISSUER,
    expires_delta=timedelta(seconds=JWT_LIFE_SPAN),
    ...
 ):

参考:https ://github.com/vimalloc/flask-jwt-extended/blob/5bd8b1ed08ea64d23869a629af3c3c868816b8a8/flask_jwt_extended/tokens.py#L34

于 2020-08-16T13:37:13.980 回答