我们提供一站式网上办事大厅招投标所需全套资料,包括师生办事大厅介绍PPT、一网通办平台产品解决方案、
师生服务大厅产品技术参数,以及对应的标书参考文件,详请联系客服。
小明: 嘿,小李,听说你最近在开发一个大学一表通平台?能跟我聊聊你是怎么设计登录功能的吗?
小李: 当然可以!首先我们需要一个后端来处理用户的登录请求。比如我用Python的Flask框架搭建了一个简单的后端服务。
小明: Flask听起来不错,那具体是怎么工作的呢?
小李: 我们先定义一个路由来接收POST请求,这个请求会包含用户名和密码。
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
username = data['username']
password = data['password']
# 这里我们假设有一个数据库,存储了用户的用户名和加密后的密码
user = check_user(username, password)
if user:

return jsonify({"status": "success", "message": "登录成功", "user_id": user.id})
else:
return jsonify({"status": "fail", "message": "用户名或密码错误"})
小明: 那check_user函数是怎么工作的呢?
小李: 我使用SQLAlchemy来连接数据库,查询用户信息并验证密码是否匹配。
from models import User
def check_user(username, password):
user = User.query.filter_by(username=username).first()
if user and user.verify_password(password):
return user
return None
小明: 看起来很专业!那如果我想让登录状态持久化怎么办?
小李: 可以使用JWT(JSON Web Token)来生成一个令牌,客户端每次请求时带上这个令牌,后端验证令牌的有效性。
import jwt
SECRET_KEY = 'your_secret_key'
def generate_token(user_id):
token = jwt.encode({'user_id': user_id}, SECRET_KEY, algorithm='HS256')
return token
def verify_token(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=['HS256'])
return payload['user_id']
except Exception as e:
return None
小明: 明白了,这样就能确保用户的身份安全了。谢谢你的分享!
小李: 不客气,如果有其他问题随时问我!
]]>