涵盖医院全部科研活动的全方位科研项目管理系统
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('research.db')
cursor = conn.cursor()
# 创建用户表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,

password TEXT NOT NULL
)
''')
# 插入测试数据
cursor.execute("INSERT OR IGNORE INTO users (username, password) VALUES (?, ?)", ("admin", "123456"))
conn.commit()
import jwt
from datetime import datetime, timedelta
def login(username, password):
conn = sqlite3.connect('research.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
user = cursor.fetchone()
conn.close()
if not user:
return {"error": "用户不存在"}
if user[2] != password:
return {"error": "密码错误"}
# 生成JWT令牌
payload = {
'user_id': user[0],
'exp': datetime.utcnow() + timedelta(hours=1)
}
token = jwt.encode(payload, 'secret_key', algorithm='HS256')
return {"token": token}
async function loginUser(username, password) {
const response = await fetch('/api/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
});
const data = await response.json();
if (data.error) {
alert(data.error);
} else {
localStorage.setItem('token', data.token);
alert('登录成功');
}
}
def verify_token(token):
try:
payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
return payload['user_id']
except jwt.ExpiredSignatureError:
return None
except jwt.InvalidTokenError:
return None
Copyright © 医院科研管理系统