flask使用flask_jwt_extended进行用户登录验证

from datetime import timedelta
from flask import Flask, jsonify, request
from flask_jwt_extended import JWTManager, create_access_token, jwt_required, get_jwt_identity
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'your-secret-key' # 设置密钥
# Set the token expiration time
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(hours=2)
jwt = JWTManager(app)
# 假设您的用户信息存储在数据库中
users = [
{"username": "admin", "password": "admin"},
{"username": "user", "password": "pass"}
]
# 用户登录路由
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username')
password = request.json.get('password')
# 验证用户名和密码是否匹配
for user in users:
if user["username"] == username and user["password"] == password:
# 创建访问令牌
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token), 200
return jsonify({"msg": "Invalid username or password"}), 401
@jwt.expired_token_loader
def my_expired_token_callback(a,b):
return jsonify({
'code': 401,
'message': 'token已过期'
})
# 受保护的路由,需要访问令牌进行身份验证
@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
# 获取当前用户
current_user = get_jwt_identity()
print(current_user)
return jsonify(logged_in_as=current_user), 200

参考:https://blog.csdn.net/djstavaV/article/details/112261875

posted on   朝朝暮Mu  阅读(197)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2022-08-22 uni-app小程序学习笔记
2022-08-22 nodejs安装
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示