flask_jwt_extended 4.0学习
1.前言
在学习flask_jwt_extended插件的时候遇到许多问题,究其原因是因为版本问题,4.0以后的版本在语法上做了许多优化,而我是参考较低版本的flask_jwt_extended学习的,一开始不明白出问题的原因,所以参考了许许多多博友的思路和写法,发现并没有问题,后来想到去看官方的文档,发现了原因所在,以下是4.0版本的api变化对照,更加详细的变化请参考官方文档。
flask_jwt_extended4.0版本API的变化
2.flask_jwt_extended的常规使用
1. create_access_token()用来创建令牌
2. get_jwt_identity()用来根据令牌取得之前的identity信息
3. jwt_required()这是一个装饰器,用来保护flask节点(endpoint)
1 from flask_jwt_extended import create_access_token 2 from flask_jwt_extended import jwt_required 3 from flask_jwt_extended import get_jwt_identity 4 from flask_jwt_extended import JWTManager 5 6 from flask import Flask 7 from flask import jsonify 8 from datetime import timedelta 9 10 app = Flask(__name__) 11 jwt = JWTManager(app) 12 13 app.config["JWT_SECRET_KEY"] = "hello@#$%&" # 加密盐值 14 app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(hours=1) # 设置token的有效时间,默认15分钟 15 16 @app.route("/login",methods=["POST"]) 17 def login(): 18 # 携带用户标识生成token 19 access_token = create_access_token(identity={"id": 1, "username": "apple"}) 20 return jsonify(access_token=access_token) 21 22 @app.route("/index",methods=["GET"]) 23 @jwt_required() # token认证,老版本不需要括号 24 def index(): 25 # 获取认证标识中的信息 26 userInfo = get_jwt_identity() 27 return jsonify(userInfo) 28 29 if __name__ == "__main__": 30 app.run()