78 lines
2.6 KiB
PHP
78 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace app\cunkebao\controller;
|
|
|
|
use app\common\controller\BaseController;
|
|
use Exception;
|
|
use library\ResponseHelper;
|
|
use app\api\controller\UserController;
|
|
|
|
/**
|
|
* 认证控制器
|
|
* 处理用户登录和身份验证
|
|
*/
|
|
class KeFuLoginController extends BaseController
|
|
{
|
|
|
|
|
|
/**
|
|
* 用户登录
|
|
*
|
|
* @return \think\response\Json
|
|
*/
|
|
public function index($username = '', $password = '',$verifySessionId = '',$verifyCode = '')
|
|
{
|
|
$username = !empty($username) ? $username : $this->request->param('username', '');
|
|
$password = !empty($password) ? $password : $this->request->param('password', '');
|
|
|
|
$verifySessionId =!empty($verifySessionId) ? $verifySessionId : $this->request->param('verifySessionId', '');
|
|
$verifyCode = !empty($verifyCode) ? $verifyCode : $this->request->param('verifyCode', '');
|
|
|
|
|
|
if (empty($username) || empty($password)) {
|
|
return ResponseHelper::error('请输入账号密码');
|
|
}
|
|
|
|
|
|
//登录参数
|
|
$params = [
|
|
'grant_type' => 'password',
|
|
'username' => $username,
|
|
'password' => $password
|
|
];
|
|
|
|
if (!empty($verifySessionId) && !empty($verifyCode)){
|
|
$params[] = 'verifysessionid:' . $verifySessionId;
|
|
$params[] = 'verifycode:' . $verifyCode;
|
|
}
|
|
|
|
|
|
//获取验证码
|
|
// $UserController = new UserController();
|
|
// $verifyCode = $UserController->getVerifyCode(true);
|
|
// $verifyCode = json_decode($verifyCode, true);
|
|
// if ($verifyCode['code'] != 200) {
|
|
// exit_data($verifyCode);
|
|
// }
|
|
|
|
try {
|
|
// 调用登录接口获取token
|
|
$headerData = ['client:kefu-client'];
|
|
$header = setHeader($headerData, '', 'plain');
|
|
$result = requestCurl('https://s2.siyuguanli.com:9991/token', $params, 'POST', $header);
|
|
$token = handleApiResponse($result);
|
|
$userData['kefuData']['token'] = $token;
|
|
if (isset($token['access_token']) && !empty($token['access_token'])) {
|
|
$headerData = ['client:kefu-client'];
|
|
$header = setHeader($headerData, $token['access_token']);
|
|
$result = requestCurl('https://s2.siyuguanli.com:9991/api/account/self', [], 'GET', $header, 'json');
|
|
$self = handleApiResponse($result);
|
|
$userData['kefuData']['self'] = $self;
|
|
}
|
|
|
|
return ResponseHelper::success($userData, '登录成功');
|
|
} catch (Exception $e) {
|
|
return ResponseHelper::error($e->getMessage(), $e->getCode());
|
|
}
|
|
}
|
|
}
|