💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
Flask-JWT-Extended 是一个 Flask 插件,用于处理 JSON Web Tokens(JWT)。它具有许多内置功能,用于处理用户认证和授权。 以下是一个简单的 Flask-JWT-Extended 示例如下: 首先,使用 pip 安装 flask_jwt_extended: bash Copy code pip install flask-jwt-extended 创建一个基本的 Flask 应用并配置密钥: python Copy code from flask import Flask, jsonify, request from flask_jwt_extended import JWTManager, jwt_required, create_access_token app = Flask(__name__) app.config['JWT_SECRET_KEY'] = 'super-secret' # Change this! jwt = JWTManager(app) 这里 JWT_SECRET_KEY 是用来签名 JWTs 的密钥。 创建一个路由来生成 JWT: python Copy code @app.route('/login', methods=['POST']) def login(): username = request.form.get("username") password = request.form.get("password") if username != 'test' or password != 'test': return jsonify({"msg": "Bad username or password"}), 401 access_token = create_access_token(identity=username) return jsonify(access_token=access_token) 这个路由用于用户登录,如果用户名和密码正确(这里简化为用户名和密码都为 'test'),就生成一个包含用户身份信息的 access token。 创建另一个路由,要求用户需要有 JWT 才能访问: python Copy code @app.route('/protected', methods=['GET']) @jwt_required() def protected(): return jsonify({'hello': 'world'}) 这个 protected 路由使用 @jwt_required() 装饰器,该装饰器确保客户端在请求时提供一个有效的 JWT。 运行应用: python Copy code if __name__ == '__main__': app.run() 在这个示例中,用户首先需要向 /login 端点发送 POST 请求进行登录,登录成功后,将返回一个 JWT。然后用户可以使用这个 JWT 作为认证信息来访问 /protected 端点。 这只是 Flask-JWT-Extended 的基本使用,对于更复杂的需求,你可能需要处理刷新 token,添加用户声明,黑名单等等。你可以查阅文档了解更多详细内容