张工程师:李老师,您好!我最近正在开发一个科研成果管理系统,想请您指导一下如何实现用户登录功能。
李教授:你好,张工程师。首先,你需要明确登录功能的核心逻辑,比如用户名密码验证、会话管理等。
张工程师:明白了,那我们先从数据库设计开始吧。我打算用MySQL存储用户的账号信息。
李教授:很好,下面给你展示一段简单的SQL脚本创建用户表:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
张工程师:谢谢李老师!接下来我想用Python编写后端服务,请问怎么处理登录请求呢?
李教授:你可以使用Flask框架快速搭建服务。这里是一个基本的登录接口示例:
from flask import Flask, request, jsonify
import hashlib
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
username = data['username']
password = data['password']
# 假设查询数据库成功返回user对象
user = query_user(username)
if not user or not verify_password(password, user.password):
return jsonify({'status': 'fail', 'message': 'Invalid credentials'})
# 创建session或token
session_id = generate_session_id()
save_session(session_id, user.id)
return jsonify({'status': 'success', 'session_id': session_id})
张工程师:明白了,那我在前端应该怎么调用这个接口呢?
李教授:可以使用JavaScript的Fetch API发送POST请求。例如:
async function attemptLogin(username, password) {
const response = await fetch('http://localhost:5000/login', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({username, password})
});
const result = await response.json();
if (result.status === 'success') {
console.log('Login successful!');
} else {
console.error(result.message);
}
}

张工程师:非常感谢您的帮助,李老师!这样我就能够结合兰州的具体需求完善系统了。
李教授:不客气,祝你项目顺利!如果有其他问题随时联系我。
