簡體   English   中英

如何使用 Flask-JWT-Extended 的 create_access_token() 設置 JWT 的“iss”聲明

[英]How to set the 'iss' claim of JWT using Flask-JWT-Extended's create_access_token()

有沒有辦法設置由 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 的注冊聲明之一。

我認為您可以使用encode_access_token api 並使用發行人創建編碼的訪問代碼。

例子:

 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM