更新
This commit is contained in:
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user