没有@JWT_required的烧瓶JWT:get_JWT_identity()始终返回Non



我正在构建一个Flask JWT扩展应用程序,下面是我想要做的:

我有一个对所有人开放的端点(即没有decorator@jwt_required,每个人都可以访问链接(

但如果有人通过身份验证访问这个链接,我希望能够找回他的身份,类似于

@bp.route('/test', methods=('GET', 'POST'))
def test() -> str:
identity = get_jwt_identity()
print(a)
if identity is not None:
# do something
else:
# do other stuff

问题是,如果没有decorator,get_jwt_identity总是返回None

有办法做到这一点吗?

感谢

如果使用4.x.x版本,请使用@jwt_required(optional=True)。如果您仍然使用3.x.x版本,请使用@jwt_optional

如果您想解码未受保护端点上的自定义访问令牌。您需要使用flask-jwt-extended中的decode_token

from flask_jwt_extended import decode_token
def post(self):
data = ResetPassword.parser.parse_args()
reset_token = data['reset_token']
decoded_token = decode_token(reset_token)['sub'] 

sub指的是从创建令牌时的"身份">

access_token = create_access_token(identity=user.get_id())

相关内容

  • 没有找到相关文章

最新更新