登录页
页面元信息
- 终端:学生端
- Astro 路由:
/student/login - 原始 HTML:
s_login.html - 来源章节:
4.4.1 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/s_login.html。 - 页面为学生端/教师端共用的统一登录入口,整体采用白底简洁布局;顶部为品牌区,包含平台 Logo、品牌文案
南方数字 · 教辅平台和身份端切换分段控件。 - 身份端切换区包含
学生端、教师端两个互斥页签,默认高亮学生端;切换后仅更新当前登录模式、输入提示和底部首次登录说明,不自动触发登录。 - 表单区包含
账号、密码两个输入项;密码输入框右侧提供“显示/隐藏密码”切换控件;主操作按钮固定为登录。 - 页脚区展示首次登录提示和版本信息;原型中的示例账号
S20260301 / T20260301仅用于演示,不作为正式实现的默认回填值。
功能描述
- 页面入口与默认态:
- 未登录用户进入学生端时,统一先进入
s_login.html。 - 页面默认选中
学生端,账号输入框 placeholder 为请输入学生账号,首次登录提示文案为首次登录请使用教师分发的初始密码。 - 切换到
教师端后,账号输入框 placeholder 切换为请输入教师账号,首次登录提示文案切换为首次登录请联系教务管理员获取密码。
- 未登录用户进入学生端时,统一先进入
- 登录交互:
- 登录方式固定为
账号 + 密码;本页不提供记住账号、记住密码、找回密码、首次登录改密等额外入口。 - 学生输入账号、密码后点击
登录,系统先做前端必填校验,再调用统一认证接口完成账号校验、密码校验和身份端校验。 - 密码输入框右侧“显示/隐藏密码”控件仅改变当前输入框展示状态,不影响密码内容与登录逻辑。
- 登录方式固定为
- 身份端切换规则:
学生端 / 教师端仅允许单选;同一时刻只允许 1 个身份端处于激活态。- 切换身份端后,页面需同步更新账号 placeholder、首次登录提示、登录请求中的
login_role参数和登录成功后的跳转目标。 - 若用户当前选择的身份端与账号真实身份不匹配,系统必须阻断登录并提示用户切换到正确身份端后重试。
- 登录成功后的跳转:
- 学生端登录成功后,直接进入
s_homework_list.html?homeworkTab=paper&subTab=library,不再进入旧版s_home.html。参见 R72。 - 教师端登录成功后,进入教师端对应主链路;学生端文档验收以“学生成功进入作业列表页”为准。
- 登录成功后需写入当前用户会话、角色类型和默认首屏路由信息,供后续页面鉴权和回流恢复使用。
- 学生端登录成功后,直接进入
- 业务规则:R72。
异常描述
| 异常场景 | 处理方式 |
|---|---|
| 账号为空 | 阻断登录请求,高亮账号输入框并提示 请输入账号。 |
| 密码为空 | 阻断登录请求,高亮密码输入框并提示 请输入密码。 |
| 账号或密码错误 | 停留当前页,提示 账号或密码错误,请重新输入;密码框内容清空,账号保留。 |
| 账号被冻结、停用或已失效 | 停留当前页,提示 当前账号不可用,请联系老师或管理员。 |
| 身份端选择与账号类型不匹配 | 阻断登录并提示 当前账号与所选身份端不匹配,请切换后重试。 |
| 登录接口超时、网络异常或服务不可用 | 停留当前页,提示 网络连接异常,请稍后重试;不清空用户已输入的账号。 |
数据需求
- 接口:
- 登录接口:入参包含
account、password、login_role;出参至少返回token、user_id、role_type、bound_student_id(学生端)、default_redirect_url。 - 身份校验接口:用于校验当前账号是否允许以
student / teacher身份登录,避免账号和身份端错配。 - 当前用户信息接口:登录成功后拉取用户基础信息、角色信息和默认首屏配置,用于后续页面初始化。
- 登录接口:入参包含
- 页面状态:
- 页面需维护
selected_role、account_input、password_visible、login_loading等基础状态。 - 页面不本地持久化密码;若产品后续需要记忆最近登录身份,仅允许保存最近一次
selected_role,不保存明文账号和密码。
- 页面需维护
- 埋点:
- 登录页浏览:记录默认身份端、入口来源、是否命中登录失效回跳。
- 身份端切换:记录
from_role、to_role。 - 登录点击:记录当前身份端、账号类型、是否通过前端校验。
- 登录结果:记录成功/失败、失败原因、最终跳转页。