账号登录、设备、PC 授权与安全
本文整理 DGJ2.0 PC、App、PDA 登录,短信验证码,密码重置,机器码绑定,PC 授权,账号安全配置和安全日志。账号链路是所有业务入口的前置条件。
业务目标
- 支持 PC/App 登录、退出、session 检查。
- 支持短信验证码、密码重置、登录背景图。
- 支持 PC 机器码绑定、解绑申请、授权登录。
- 支持账号安全配置:PC/App/PDA/KXJ 是否允许登录、是否要求重新登录。
- 记录账号安全操作日志。
入口文件
- PC 登录:
application/controllers/passport/Login.php - App 登录:
application/controllers/app/passport/Login.php - 登录服务:
application/Services/Passport/LoginService.php - 安全服务:
application/Services/Safe/AccountSafeSer.php - 安全日志:
application/Services/Safe/AccountSafeLogSer.php - 初始化任务:
application/controllers/tasks/AccountSafeLog.php
核心表
| 表 | 用途 | | --- | --- | | t_sys_admin | 用户账号 | | t_app_device | App 登录设备记录 | | t_sys_pc_auths | PC 授权信息 | | t_sys_pc_versions | PC 版本 | | t_sys_pc_machines | 机器码绑定 | | t_sys_pc_login_control | PC 登录控制 | | t_sys_pc_upgrade_log | PC 升级日志 | | t_sys_pc_unbind_apply | 解绑申请 | | t_sys_pc_bind_apply | 绑定申请 | | t_bs_account_safe_log | 账号安全日志 |
核心方法
登录控制器:
checkSession:检查 session。signIn:登录。silentSignIn:静默登录。pcSmsSend:PC 短信。pcActiveBind:PC 激活绑定。pcGrantAuth:PC 授权。pcSignIn:PC 登录。pcBindApply:绑定申请。pcUnbind:解绑。sendSmsCode:发送验证码。resetUserPassword:重置密码。
登录服务:
LoginService::verifyUser:校验用户。sendSmsCode/verifySmsCode:验证码发送和校验。resetUserPassword:密码重置。sendVerifier:发送验证。
安全服务:
AccountSafeSer::pcLoginStatus/appLoginStatus/pdaLoginStatus/kxjLoginStatus:各端登录状态。setAccountConfig:设置安全配置。needReLogin/setNeedReLogin/clearReLogin:强制重新登录。lockPdaAndApp/unLockPdaAndApp:锁定或解锁移动端。kzmallWebLoginOut:Web 退出。
主流程
flowchart TD
A["用户登录"] --> B["校验账号密码或验证码"]
B --> C["检查服务站安全配置"]
C --> D{"PC 是否需要机器授权"}
D -->|是| E["机器码绑定/授权"]
D -->|否| F["建立 session"]
E --> F
F --> G["记录设备和安全日志"]
异常流程
- 登录失败:查账号状态、密码、验证码、服务站安全配置。
- PC 机器码失败:查
t_sys_pc_machines、绑定申请、解绑申请。 - App/PDA 被锁:查
AccountSafeSer缓存和账号安全配置。 - 重置密码失败:查手机号、验证码、用户绑定关系。
- 修改安全配置后不生效:查 Redis/缓存是否刷新。
常用 rg 命令
rg -n "pcSignIn|pcBindApply|pcUnbind|pcGrantAuth|sendSmsCode" application/controllers/passport application/controllers/app/passport
rg -n "AccountSafeSer|needReLogin|lockPdaAndApp|pcLoginStatus|pdaLoginStatus" application/Services/Safe
rg -n "SYS_PC_AUTHS|APP_DEVICE|BS_ACCOUNT_SAFE_LOG|SYS_PC_MACHINES" application/config/tables.php application
改动风险和回归清单
- PC 登录、App 登录、PDA 登录。
- 短信验证码、密码重置。
- PC 绑定、解绑、授权、机器码更换。
- 账号安全配置:锁定、解锁、强制重登。
- 安全日志:OPS 修改、财务修改、初始化任务。