This commit is contained in:
gr
2026-09-28 14:18:12 +08:00
parent 49fc974421
commit 694c83dc7d
7 changed files with 80 additions and 3 deletions
@@ -28,7 +28,10 @@ class DesktopController extends BaseAdminController
if (empty($identity) || empty($identity['admin_id'])) {
return $this->fail('登录已失效,请重新登录');
}
if ((int)($identity['terminal'] ?? 0) !== AdminTerminalEnum::WECOM_RPA) {
// 桌面软件(7)和客服后台代登的手机控制台(8)都用这个接口换身份;
// 返回真实终端,客服后台据此区分两种会话,桌面令牌不能冒充手机令牌。
$terminal = (int)($identity['terminal'] ?? 0);
if (!in_array($terminal, AdminTerminalEnum::wecomRpaTerminals(), true)) {
return $this->fail('当前登录令牌不属于企业微信客服桌面端');
}
@@ -59,7 +62,7 @@ class DesktopController extends BaseAdminController
'nickname' => $name !== '' ? $name : $account,
'mobile' => '',
'avatar' => (string)$admin['avatar'],
'terminal' => AdminTerminalEnum::WECOM_RPA,
'terminal' => $terminal,
'expire_time' => (int)($identity['expire_time'] ?? 0),
'status' => 'active',
'account_type' => 'admin',
@@ -33,7 +33,7 @@ class LoginValidate extends BaseValidate
{
protected $rule = [
'terminal' => 'require|in:' . AdminTerminalEnum::PC . ',' . AdminTerminalEnum::MOBILE
. ',' . AdminTerminalEnum::WECOM_RPA,
. ',' . AdminTerminalEnum::WECOM_RPA . ',' . AdminTerminalEnum::WECOM_RPA_MOBILE,
'account' => 'require',
'password' => 'require|password',
];
@@ -27,4 +27,15 @@ class AdminTerminalEnum
const MOBILE = 2;
// 企业微信客服桌面软件。与网页端分开保存会话,桌面登录不会顶掉浏览器登录。
const WECOM_RPA = 7;
// 企业微信客服手机远程控制台。由客服后台服务端代为登录,单独保存会话,
// 手机登录既不会顶掉桌面软件(7),也不会和网页后台(1)互踢。
const WECOM_RPA_MOBILE = 8;
/**
* 可以调用 /adminapi/desktop/session 换取客服身份的终端。
*/
public static function wecomRpaTerminals(): array
{
return [self::WECOM_RPA, self::WECOM_RPA_MOBILE];
}
}