flask_jwt_extended 4.0学习

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()
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » flask_jwt_extended 4.0学习