修复"未配置卷王登录账号"导致后台刷新陷入死状态
根因:login.php 仅持久化 username、不持久化 password;token 缓存失效后
自动重登因缺少密码而抛 RuntimeException('未配置卷王登录账号'),前端仅提示
"后台刷新失败,已显示本地缓存"却无法自愈,刷新循环永不恢复。
修复:
- login.php:登录成功时同时持久化 username 与 password,token 失效时平台
可凭凭据自动重新登录卷王,避免死状态。
- api.php:全局 catch 对鉴权类错误(未配置账号/登录失败)打标 extra.auth=true。
- assets/app.js、dashboard.php:api() 透传 auth 标记;刷新失败若为鉴权错误,
自动跳转 login.php 重新登录,不再停留在本地缓存死状态。
验证:本地 mock 卷王端到端复现 CASE1(空账号精确复现报错)与 CASE2
(凭据齐备自动重登成功),HTTP 接口确认返回 extra.auth:true 与 ok:true。
This commit is contained in:
@@ -502,7 +502,13 @@ try {
|
||||
ny_fail('未知操作:' . $action);
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
ny_fail($e->getMessage(), [
|
||||
$msg = $e->getMessage();
|
||||
// 鉴权类错误(账号未配置 / 登录卷王失败)打标,前端据此跳登录页自愈
|
||||
$isAuth = str_contains($msg, '未配置卷王登录账号')
|
||||
|| str_contains($msg, '登录卷王失败')
|
||||
|| str_contains($msg, '登录失败');
|
||||
ny_fail($msg, [
|
||||
'auth' => $isAuth,
|
||||
'trace' => defined('NY_DEBUG') && NY_DEBUG ? $e->getTraceAsString() : null,
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user