Notion Blog
知行合一1 分钟阅读

flask 中使用jwt

Flask-JWT-Extended是Flask的一个扩展,用于在 Flask 应用程序中轻松实现 JSON Web Tokens (JWT)。以下是一个基本的使用示例:

首先,安装 Flask-JWT-Extended:

pip install flask-jwt-extended

然后在你的 Flask 应用中设置和使用 JWT:

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'  # 这个密钥用于生成和验证 token,需要保密
jwt = JWTManager(app)

@app.route('/login', methods=['POST'])
def login():
    username = request.json.get('username')
    password = request.json.get('password')  # 假设你已经验证了用户名和密码
    if username == 'user' and password == 'password':
        access_token = create_access_token(identity=username)
        return jsonify(access_token=access_token)
    else:
        return jsonify({"msg": "账号或者密码错误"}), 401

@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
    current_user = get_jwt_identity()  # 获取当前登录用户的 identity(在这个例子中是用户名)
    return jsonify(logged_in_as=current_user)

if __name__ == '__main__':
    app.run()

在上述代码中:

create_access_token 用于创建一个访问令牌。
jwt_required 装饰器用于保护特定路由,只有拥有有效 JWT 的用户才能访问。
get_jwt_identity 用于从请求中获取解码后的 JWT 中的身份信息。

请注意,这只是一个基本示例,实际应用中你需要根据自己的用户认证系统来生成和验证 JWT。同时,为了安全起见,应确保 JWT_SECRET_KEY 被妥善保管,并且可能还需要配置其他的 JWT 相关选项。

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。