| 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' |
| |
| |
| 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2022-08-22 uni-app小程序学习笔记
2022-08-22 nodejs安装