This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
当前阶段只解决一件事:
|
||||
|
||||
1. 由 `Axum` 根据服务端配置,返回当前环境启用的登录方式列表。
|
||||
2. 密码登录入口由 Rust `password_entry` 固定承载,作为登录弹窗的保底入口。
|
||||
|
||||
本阶段明确不包含:
|
||||
|
||||
@@ -31,7 +32,7 @@
|
||||
|
||||
```json
|
||||
{
|
||||
"availableLoginMethods": ["phone", "wechat"]
|
||||
"availableLoginMethods": ["phone", "password", "wechat"]
|
||||
}
|
||||
```
|
||||
|
||||
@@ -40,6 +41,7 @@
|
||||
1. `availableLoginMethods` 为字符串数组
|
||||
2. 当前阶段只允许出现:
|
||||
- `phone`
|
||||
- `password`
|
||||
- `wechat`
|
||||
|
||||
### 3.3 返回顺序
|
||||
@@ -47,7 +49,8 @@
|
||||
返回顺序固定为:
|
||||
|
||||
1. 先 `phone`
|
||||
2. 再 `wechat`
|
||||
2. 再 `password`
|
||||
3. 再 `wechat`
|
||||
|
||||
这样可以保证前端按钮顺序稳定,不因配置解析顺序变化而漂移。
|
||||
|
||||
@@ -61,8 +64,9 @@
|
||||
映射规则固定为:
|
||||
|
||||
1. `SMS_AUTH_ENABLED=true` 时返回 `phone`
|
||||
2. `WECHAT_AUTH_ENABLED=true` 时返回 `wechat`
|
||||
3. 两者都关闭时返回空数组
|
||||
2. Rust 密码登录主链可用时固定返回 `password`
|
||||
3. `WECHAT_AUTH_ENABLED=true` 时返回 `wechat`
|
||||
4. 短信与微信都关闭时仍返回 `["password"]`
|
||||
|
||||
## 5. crate 边界
|
||||
|
||||
@@ -84,13 +88,15 @@
|
||||
|
||||
1. 根据 `availableLoginMethods` 决定是否展示手机号 / 微信入口
|
||||
2. 不再假设某种登录方式一定存在
|
||||
3. 若 `/api/auth/login-options` 联调失败或返回空数组,前端仍保留 `password` 入口,避免登录弹窗显示“当前登录入口暂不可用”后无法继续操作。
|
||||
|
||||
## 6. 测试要求
|
||||
|
||||
至少覆盖:
|
||||
|
||||
1. 默认配置下返回空数组
|
||||
2. 同时启用短信与微信时返回 `["phone", "wechat"]`
|
||||
1. 默认配置下返回 `["password"]`
|
||||
2. 同时启用短信、密码与微信时返回 `["phone", "password", "wechat"]`
|
||||
3. 前端在 `login-options` 读取失败或返回空数组时,仍展示密码登录表单
|
||||
|
||||
## 7. 完成定义
|
||||
|
||||
|
||||
Reference in New Issue
Block a user