登录方案:确认复用 /login 并一次返回两条链接,密钥已入库
This commit is contained in:
+28
-15
@@ -56,8 +56,9 @@ nginx 无需改动:`location /` 会把 `/login` 改写成后端 `/personal/log
|
||||
|
||||
### 2.1 生成票据
|
||||
|
||||
密钥必须与主站一致,存 PersonalHub 的秘密库(共享盘只留 `secret://` 引用),
|
||||
不要写进仓库或聊天记录。Python 侧计算方式:
|
||||
密钥必须与主站一致。**已由主人批准写入 PersonalHub 保险库**,引用为
|
||||
`secret://services/service-lionwebsite/panel-login-secret`;机器人侧按既有秘密读取流程
|
||||
申请取值,不要写进仓库或聊天记录。Python 侧计算方式:
|
||||
|
||||
```python
|
||||
import hashlib, hmac, time
|
||||
@@ -75,23 +76,35 @@ Shell 等价写法(`openssl`)供人工验证用:
|
||||
SIG=$(printf 'v1.%s' "$STAMP" | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $NF}')
|
||||
```
|
||||
|
||||
### 2.2 命令接入
|
||||
### 2.2 命令接入(主人已确认的方案)
|
||||
|
||||
- Telegram:`TELEGRAM_COMMANDS` 增加 `login`,并复用 PersonalHub 现成的
|
||||
`configure_handlers(login_handler=...)` 形状;文案可沿用
|
||||
「已生成登录链接,5 分钟内有效,请勿转发」。
|
||||
- QQ(LionQQBot):增加 `/login`(别名 `/登录`),走同一套生成逻辑。
|
||||
- 按项目既有约定,新命令必须同时覆盖 QQ 与 Telegram,帮助菜单同步更新。
|
||||
**复用既有 `/login`,不新建命令名;一条回复里同时给出两个登录链接。**
|
||||
|
||||
- Telegram:`telegram_panel_login()` 的返回文案改为同时给出 PersonalHub 面板链接与
|
||||
LionWebsite 面板链接,`TELEGRAM_COMMANDS` 里 `login` 的描述同步更新。
|
||||
- QQ(LionQQBot):既有 `/login`(别名 `/登录`)返回同样两条链接,共用同一套生成逻辑。
|
||||
- PersonalHub 未完整配置(缺 password / session_secret / TOTP)时,现有逻辑会回一句
|
||||
配置提示;此时**仍要发出 LionWebsite 链接**,不要让一条链接的失败带掉另一条。
|
||||
- 帮助菜单(Telegram `/help` 与 QQ 菜单)中 `/login` 的描述同步更新。
|
||||
- 文案不要写成「两条都只能用一次」:PersonalHub 链接是一次性的,
|
||||
LionWebsite 票据是 300 秒窗口内可重放。
|
||||
|
||||
示例文案:
|
||||
|
||||
```
|
||||
已生成登录链接:
|
||||
|
||||
· Personal Hub:[打开面板](< PersonalHub 链接 >)
|
||||
· LionWebsite:[打开面板](< LionWebsite 链接 >)
|
||||
|
||||
两条链接 5 分钟内有效,请勿转发。
|
||||
```
|
||||
|
||||
### 2.3 与 PersonalHub 现有 /login 的关系
|
||||
|
||||
PersonalHub 已有一个 `/login`,但它签发的是**它自己面板**的票据
|
||||
(`OneTimePanelLoginTickets` + `/panel/telegram-login`),与 LionWebsite 无关。
|
||||
接入时二选一,建议前者:
|
||||
|
||||
1. `/login` 仍只回 PersonalHub 面板链接,另加 `lionlogin`(或 `/面板`)专给
|
||||
LionWebsite —— 语义清晰,不改动既有命令行为;
|
||||
2. 让 `/login` 一条消息里同时给出两个链接 —— 少一个命令,但会改动现有文案与测试。
|
||||
PersonalHub 的 `/login` 原本只签发**它自己面板**的票据
|
||||
(`OneTimePanelLoginTickets` + `/panel/telegram-login`)。改造时保留这条,
|
||||
再在同一回复里附加 LionWebsite 链接;两者的票据机制与有效期互不影响。
|
||||
|
||||
## 3. 可选收尾(未做,需要时另开任务)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user