| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?php
- namespace app\api\controller\login;
- use app\api\controller\ZskkDefaultController;
- use app\api\validate\login\LoginValidate;
- use app\api\servies\login\LoginService;
- use think\Exception;
- //use app\api\validate\test\LoginValidate;
- class LoginController extends ZskkDefaultController
- {
- protected $needToken = false;
- protected $logName = "LoginController";
- /**
- * 用户登录接口
- * @author liuguiyan LoginService $service
- */
- public function login(LoginService $service)
- {
- $params = $this->getParams();
- LoginValidate::check($params);
- $user = $service->login($params);
- return $this->success($user);
- }
- public function loginNoPass(LoginService $service)
- {
- $params = $this->getParams();
- if (isset($params['appId']) && !empty($params['appId']) && empty($params['username'])){
- $params['username'] = \think\Db::table('PLATFROM_ACCOUNT')->where('APPID',$params['appId'])->value('RIS_USERNAME');
- }
- //获取账号
- if (isset($params['username']) && !empty($params['username']) ){
- $data['username'] = $params['username'];
- }
- //todo 默认值
- if (empty($data['username'])){
- $data['username'] = 'www';
- }
- //测试环境不验证token
- if (isset($params['appId']) && isset($params['certificate']) && isset($params['token'])){
- $data['appId'] = $params['appId'];
- $data['tripartiteVoucher'] = $params['certificate'];
- $data['token'] = $params['token'];
- if (!$data['appId'] || !$data['tripartiteVoucher'] || !$data['token'] || !$data['username']){
- $this->error(__('参数错误'), '/admin/index/login');
- }
- //todo: 这里的url需要改成配置项
- $url = 'http://10.25.14.7:30082/system/sys-sub/token/checkToken';
- $response = $this->httpGet(
- $url,
- $data
- );
- if ($response === false) {
- $this->error(__('验证token失败'), '/admin/index/login');
- }
- }
- $user = $service->loginNoPass($data['username']);
- return $this->success($user);
- }
- /**
- * 发送POST JSON请求
- *
- * @param string $url 请求URL
- * @param array $data 请求数据
- * @return string|false 返回响应内容,失败返回false
- */
- private function httpPostJson($url, $data)
- {
- $jsonData = json_encode($data);
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_TIMEOUT, 60);
- // 设置请求头
- curl_setopt($ch, CURLOPT_HTTPHEADER, [
- 'Content-Type: application/json',
- 'Content-Length: ' . strlen($jsonData)
- ]);
- $response = curl_exec($ch);
- $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $error = curl_error($ch);
- curl_close($ch);
- if ($error) {
- error_log("CURL错误: " . $error);
- return false;
- }
- if ($httpCode != 0) {
- error_log("HTTP错误: " . $httpCode);
- return false;
- }
- return $response;
- }
- /**
- * HTTP GET 请求
- * @param string $url 请求 URL
- * @param array $params 查询参数
- * @return mixed 响应结果,失败返回 false
- */
- private function httpGet($url, $params = [])
- {
- // 如果有参数,拼接到 URL 后面
- if (!empty($params)) {
- $queryString = http_build_query($params);
- $url .= (strpos($url, '?') !== false ? '&' : '?') . $queryString;
- }
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_TIMEOUT, 60);
- // 设置请求头
- curl_setopt($ch, CURLOPT_HTTPHEADER, [
- 'Content-Type: application/json'
- ]);
- $response = curl_exec($ch);
- $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $error = curl_error($ch);
- curl_close($ch);
- if ($error) {
- error_log("CURL 错误:" . $error);
- return false;
- }
- if ($httpCode != 200 && $httpCode != 201) {
- error_log("HTTP 错误:" . $httpCode);
- return false;
- }
- return $response;
- }
- public function send_message_again(LoginService $service)
- {
- $params = $this->getParams();
- LoginValidate::checkPhone($params);
- $user = $service->send_message_again($params);
- return $this->success($user);
- }
- public function check_code(LoginService $service)
- {
- $params = $this->getParams();
- LoginValidate::checkCode($params);
- $user = $service->check_code($params);
- return $this->success($user);
- }
- public function loginOut(LoginService $service)
- {
- try{
- $user = $service->logout($this->getToken());
- return $this->success($user);
- } catch (Exception $exception){
- $this->throwError('系统异常',0001);
- }
- }
- public function out(LoginService $service)
- {
- try{
- $params = $this->getParams();
- $data = $service->out($params['session']);
- return $this->success($data);
- } catch (Exception $exception){
- $this->throwError('系统异常',0001);
- }
- }
- }
|