我正在构建一个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())