我有下面的代码来刷新访问令牌,使用fastapi_jwt_auth库传递刷新令牌
@router.post('/accessTokenRefresh')
def refresh(authorize: AuthJWT = Depends()):
try:
authorize.jwt_refresh_token_required()
current_user = authorize.get_jwt_subject()
new_access_token = authorize.create_access_token(subject=current_user)
return {"access_token": new_access_token}
except JWTDecodeError as e:
rex = ErrorResponse(error=1000, message="Invalid Refresh Token")
raise HTTPException(status_code=401, detail=rex.dict())
except Exception as e:
handleException(e)
字符串
虽然这是可行的,但有没有任何方法可以修改代码,使我可以在请求体中而不是在头中传递请求令牌
POST /refresh-token
Content-Type: application/json
{
"refresh_token": "<refresh_token>"
}
型
1条答案
按热度按时间u5rb5r591#
JWT fastapi_jwt_auth令牌只能在两个变体中使用。
authjwt_token_location在处理请求时在哪里查找JWT。选项是标头或Cookie。您可以传入一个序列来设置多个位置('heads','cookie')。默认值为{'headers'}如果传递标头和cookie,则标头优先。
Docs.
为了获得更大的移动性,我建议使用FastApi documentation。