Compare commits
2
Commits
ai-8-26
...
5e22d423d4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e22d423d4 | ||
|
|
7f1ed49cc8 |
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | 企业微信客服桌面端认证接口
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
use app\common\enum\user\UserTerminalEnum;
|
||||||
|
use app\common\enum\YesNoEnum;
|
||||||
|
use app\common\model\user\User;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桌面端只通过这里确认一个 token 是否属于企业微信客服终端。
|
||||||
|
*
|
||||||
|
* 登录仍复用 LoginController::account;这个接口只返回建立外部账号映射所需的
|
||||||
|
* 最小身份信息,避免客服后台依赖面向普通 PC 页面的完整个人资料结构。
|
||||||
|
*/
|
||||||
|
class DesktopController extends BaseApiController
|
||||||
|
{
|
||||||
|
public function session()
|
||||||
|
{
|
||||||
|
if ((int)($this->userInfo['terminal'] ?? 0) !== UserTerminalEnum::WECOM_RPA) {
|
||||||
|
return $this->fail('当前登录令牌不属于企业微信客服桌面端');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = User::where(['id' => $this->userId])
|
||||||
|
->field('id,sn,nickname,mobile,avatar,is_disable')
|
||||||
|
->findOrEmpty();
|
||||||
|
if ($user->isEmpty() || (int)$user['is_disable'] === YesNoEnum::YES) {
|
||||||
|
return $this->fail('用户不存在或已禁用');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->data([
|
||||||
|
'user_id' => (int)$user['id'],
|
||||||
|
'sn' => (string)$user['sn'],
|
||||||
|
'nickname' => (string)$user['nickname'],
|
||||||
|
'mobile' => (string)$user['mobile'],
|
||||||
|
'avatar' => (string)$user['avatar'],
|
||||||
|
'terminal' => UserTerminalEnum::WECOM_RPA,
|
||||||
|
'expire_time' => (int)($this->userInfo['expire_time'] ?? 0),
|
||||||
|
'status' => 'active',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,8 +35,8 @@ class LoginAccountValidate extends BaseValidate
|
|||||||
|
|
||||||
protected $rule = [
|
protected $rule = [
|
||||||
'terminal' => 'require|in:' . UserTerminalEnum::WECHAT_MMP . ',' . UserTerminalEnum::WECHAT_OA . ','
|
'terminal' => 'require|in:' . UserTerminalEnum::WECHAT_MMP . ',' . UserTerminalEnum::WECHAT_OA . ','
|
||||||
. UserTerminalEnum::H5 . ',' . UserTerminalEnum::PC . ',' . UserTerminalEnum::IOS .
|
. UserTerminalEnum::H5 . ',' . UserTerminalEnum::PC . ',' . UserTerminalEnum::IOS
|
||||||
',' . UserTerminalEnum::ANDROID,
|
. ',' . UserTerminalEnum::ANDROID . ',' . UserTerminalEnum::WECOM_RPA,
|
||||||
'scene' => 'require|in:' . LoginEnum::ACCOUNT_PASSWORD . ',' . LoginEnum::MOBILE_CAPTCHA . '|checkConfig',
|
'scene' => 'require|in:' . LoginEnum::ACCOUNT_PASSWORD . ',' . LoginEnum::MOBILE_CAPTCHA . '|checkConfig',
|
||||||
'account' => 'require',
|
'account' => 'require',
|
||||||
];
|
];
|
||||||
@@ -158,4 +158,4 @@ class LoginAccountValidate extends BaseValidate
|
|||||||
}
|
}
|
||||||
return '验证码错误';
|
return '验证码错误';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class UserTerminalEnum
|
|||||||
const PC = 4;//电脑PC
|
const PC = 4;//电脑PC
|
||||||
const IOS = 5;//苹果app
|
const IOS = 5;//苹果app
|
||||||
const ANDROID = 6;//安卓app
|
const ANDROID = 6;//安卓app
|
||||||
|
const WECOM_RPA = 7;//企业微信客服桌面端
|
||||||
|
|
||||||
|
|
||||||
const ALL_TERMINAL = [
|
const ALL_TERMINAL = [
|
||||||
@@ -37,6 +38,7 @@ class UserTerminalEnum
|
|||||||
self::PC,
|
self::PC,
|
||||||
self::IOS,
|
self::IOS,
|
||||||
self::ANDROID,
|
self::ANDROID,
|
||||||
|
self::WECOM_RPA,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,10 +57,11 @@ class UserTerminalEnum
|
|||||||
self::PC => '电脑PC',
|
self::PC => '电脑PC',
|
||||||
self::IOS => '苹果APP',
|
self::IOS => '苹果APP',
|
||||||
self::ANDROID => '安卓APP',
|
self::ANDROID => '安卓APP',
|
||||||
|
self::WECOM_RPA => '企业微信客服桌面端',
|
||||||
];
|
];
|
||||||
if(true === $from){
|
if(true === $from){
|
||||||
return $desc;
|
return $desc;
|
||||||
}
|
}
|
||||||
return $desc[$from] ?? '';
|
return $desc[$from] ?? '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user