统一身份认证系统




from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
@app.route('/register', methods=['POST'])
def register():
data = request.get_json()
new_user = User(username=data['username'], password=data['password'])
db.session.add(new_user)
db.session.commit()
return jsonify({"message": "User registered successfully"}), 201
]]>
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
user = User.query.filter_by(username=data['username']).first()
if user and user.password == data['password']:
return jsonify({"message": "Login successful"}), 200
else:
return jsonify({"message": "Invalid credentials"}), 401
]]>
class Score(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
score = db.Column(db.Integer, nullable=False)
@app.route('/update_score', methods=['POST'])
def update_score():
data = request.get_json()
user = User.query.get(data['user_id'])
if not user:
return jsonify({"message": "User not found"}), 404
score_entry = Score(user_id=user.id, score=data['score'])
db.session.add(score_entry)
db.session.commit()
return jsonify({"message": "Score updated successfully"}), 200
]]>
@app.route('/rankings', methods=['GET'])
def rankings():
scores = Score.query.order_by(Score.score.desc()).all()
ranking = [{"user_id": s.user_id, "score": s.score} for s in scores]
return jsonify(ranking), 200
]]>