统一身份认证系统
from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/authorize', methods=['POST'])
def authorize():
user_id = request.form['user_id']
password = request.form['password']
# 验证用户身份
if authenticate(user_id, password):
token = generate_token(user_id)
return jsonify({'token': token})
else:
return jsonify({'error': 'Invalid credentials'}), 401
def authenticate(user_id, password):
# 这里应该连接数据库进行实际的用户验证
return True
def generate_token(user_id):
# 生成一个简单的JWT token
from jwt import encode
return encode({'user_id': user_id}, 'secret', algorithm='HS256')
if __name__ == '__main__':
app.run()
]]>
from functools import wraps
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('Authorization')
if not token:
return jsonify({'message': 'Token is missing!'}), 401
try:
data = decode(token, 'secret', algorithms=['HS256'])
current_user = data['user_id']
except:
return jsonify({'message': 'Token is invalid!'}), 401
return f(current_user, *args, **kwargs)
return decorated

@app.route('/protected')
@token_required
def protected(current_user):
return jsonify({'message': f'Welcome {current_user}!'})
if __name__ == '__main__':
app.run()
]]>