index.php |
已修改 |
- 应用主入口:作为用户登录后看到的第一个页面,是整个单页应用(SPA)的HTML“外壳”。
- 身份验证:在文件最顶部通过
require_once 引入 auth_check.php,确保只有合法用户才能访问。
- UI骨架:定义了页面的三大块布局:顶部的
<header>,中间的<main>内容区,和底部的<footer>输入区。
- 菜单结构:包含了左侧滑出主菜单 (
#sidebar-menu) 和底部弹出设置菜单 (#settings-sheet) 的完整HTML结构。
- 动态数据显示:使用PHP从
$_SESSION中读取并安全地显示经过特殊格式化的用户邮箱。
|
login.php |
已修改 |
- 多用户登录页:提供“邮箱”和“密码”输入框,取代了旧的单一密码模式。
- 用户引导:提供了指向注册页面 (
register.php) 和未来“忘记密码”功能的链接。
- “记住我”功能:包含一个复选框,允许用户选择是否启用长期登录。
|
register.php |
新文件 |
- 新用户注册页:提供“邮箱”、“密码”和“确认密码”的表单,是用户加入系统的唯一入口。
- 用户反馈:能够接收并显示来自后端处理脚本的成功或错误消息(例如“注册成功,等待审核”或“邮箱已被注册”)。
|
handle_register.php |
新文件 |
- 注册逻辑处理器:负责处理来自
register.php的POST请求。
- 输入验证:检查邮箱格式、密码长度、两次密码是否一致。
- 数据安全:使用
password_hash()将用户密码加密为安全的哈希值。
- 数据库操作:连接数据库,检查邮箱是否已存在,然后将新用户信息
INSERT到users表,并将初始状态status设置为'pending_review'。
|
check_login.php |
已修改 |
- 多用户登录验证器:处理来自
login.php的登录请求。
- 数据库查询:根据提交的邮箱查询
users表,获取用户信息。
- 密码比对:使用
password_verify()安全地比对用户输入的密码和数据库中存储的哈希值。
- 状态检查:在密码正确后,必须检查用户的
status是否为'active',否则将拒绝登录并给出相应提示。
- 会话创建:验证成功后,创建用户会话(
$_SESSION),并存入user_id和user_email。
- “记住我”处理:如果用户勾选了“记住我”,则生成并存储长期有效的认证令牌到
auth_tokens表和浏览器Cookie中。
|
logout.php |
已修改 |
- 统一登出脚本:负责处理用户的退出登录请求。
- 会话清理:调用
auth_check.php中的logoutAndRedirect()函数,该函数会销毁PHP会话、删除“记住我”的Cookie和数据库令牌。
- 并发会话清理:在登出前,会清空
users表中该用户的active_sessions字段,确保该用户在所有设备上都完全下线。
|
auth_check.php |
新文件 |
- 统一身份验证中心:所有需要登录才能访问的页面的“守门员”,在文件开头被引入。
- 多层验证逻辑:
- 首先检查是否存在有效的PHP会话。
- 如果会话存在,则进一步检查版本号,实现后台更新后强制全体用户下线。
- 如果会话不存在,则检查是否存在“记住我”的Cookie。
- 如果Cookie存在,则验证其令牌的有效性、时效性,并检查对应用户的状态是否为`'active'`。
- 验证通过后,为用户重新创建会话。
- 如果所有验证都失败,则强制跳转到登录页。
|
db.php |
已修改 |
- 数据库定义与连接器:定义了整个应用最终的SQLite数据库结构。
- 自动化建表:当数据库文件
auth.sqlite不存在时,会自动创建它,并执行CREATE TABLE IF NOT EXISTS命令来建立users, auth_tokens, 和 conversations三张表。
- 隐私保证:明确包含
DROP TABLE IF EXISTS messages;语句,以确保服务器上绝不保留任何旧的、包含聊天内容的表。
|
service-worker.js |
已修改 |
- PWA核心:让应用具备渐进式网页应用的特性(如离线访问、快速加载)。
- 缓存策略:采用“Stale-While-Revalidate”(后台更新同步)策略,兼顾了秒开速度和内容的自动更新。
- 资源清单:包含了所有核心页面和资源(CSS, JS, 图片等)的缓存列表。
|
generate_hash.php |
新文件 |
- 安全工具:一个独立的辅助脚本,用于将明文密码转换为安全的哈希值,供您在配置文件或数据库后台中使用。
|
version.txt |
新文件 |
- 版本控制器:一个简单的文本文件,只包含版本号(如`1.0.0`)。当您想在更新网站后强制所有用户重新登录时,只需修改这个文件的内容即可。
|