知行合一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 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。