python-3.x fastapi_jwt_auth通过传递刷新令牌而不是在auth报头中刷新访问令牌

hyrbngr7  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(153)

我有下面的代码来刷新访问令牌,使用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>"
}

u5rb5r59

u5rb5r591#

JWT fastapi_jwt_auth令牌只能在两个变体中使用。

authjwt_token_location在处理请求时在哪里查找JWT。选项是标头或Cookie。您可以传入一个序列来设置多个位置('heads','cookie')。默认值为{'headers'}如果传递标头和cookie,则标头优先。

Docs.
为了获得更大的移动性,我建议使用FastApi documentation

相关问题