getToken(); $loginServer = new LoginService($this->siteAliasName); if (empty($tokenValue)) { return responseMessage(2001, '操作失败!'); } else { $loginServer->clearLoginInfo($tokenValue); return responseMessage(1001, '操作成功!'); } } /** * 获取加密的rsa公钥 * * @return \Illuminate\Http\JsonResponse */ public function getKey() { $loginService = new LoginService($this->siteAliasName); $publicRSAKey = preg_replace('/-----BEGIN PUBLIC KEY-----|-----END PUBLIC KEY-----|\r|\n/is', '', $loginService->getPublicKey()); return responseMessage(1002, '', $publicRSAKey); } /** * 获取图形验证码信息 * * @return mixed */ public function yzm() { $phraseBuilder = new PhraseBuilder(4, '0123456789'); $builder = new CaptchaBuilder(null, $phraseBuilder); $builder->build(); $yzm = $builder->getPhrase(); $yzmImg = $builder->inline(); $loginService = new LoginService($this->siteAliasName); $loginService->saveImgYzm($yzm); return responseMessage(1002, 'success', $yzmImg); } /** * 检验图形验证码 * * @param $yzm * @return bool */ protected function checkImgYzm($yzm) { $loginService = new LoginService($this->siteAliasName); return $loginService->checkImgYzm($yzm); } /** * 清除图形验证码 */ protected function clearYzm() { $loginService = new LoginService($this->siteAliasName); $loginService->clearImgYzm(); } /** * 设置登录状态 * * @param $userInfo * @return array */ protected function setLoginStatus($userInfo) { $loginService = new LoginService($this->siteAliasName); return $loginService->setLoginCookie($userInfo); } /** * 发送短信验证码 */ public function sendSms() { $requestData = Request::all(); $mobile = $requestData['mobile'] ?? ''; $type = $requestData['type'] ?? ''; if (empty($type) || !in_array($type, ['weregister', 'register', 'forget', 'untie_mobile'])) { $msg = ['code' => 2001, 'msg' => '参数错误!']; } elseif (empty($mobile)) { $msg = ['code' => 2002, 'msg' => '请输入手机号!']; } elseif (!isMobile($mobile)) { $msg = ['code' => 2003, 'msg' => '请输入正确的手机号!']; } else { $msg = $this->smsService->sendSms($mobile, $type); } return response()->json($msg); } /** * 通过手机号和密码登录 * * @param $where * @param $input_password * @param $table_user * @return \Illuminate\Http\JsonResponse */ protected function toLoginIn($where, $input_password, $table_user) { $loginService = new LoginService($this->siteAliasName); $result = ES::table($table_user)->where($where)->queryOne(); if ($result) { if (empty($result['password'])) { return responseMessage(2006,'没有设置密码,请点击“忘记密码”,重新设置!'); } else { //验证密码的长度,必须是8-20位 $length = mb_strlen($input_password); if ($length < 8 || $length > 20) { return responseMessage(2006,'密码长度必须介于 8 - 20 个字符之间!'); } if (Hash::check($input_password, $result['password'])) { $encryptArr = $loginService->setLoginCookie($result); //设置登录状态 unset($result['id']); unset($result['password']); $encryptArr['info'] = $result; return responseMessage(1001,'登录成功',$encryptArr); } else { return responseMessage(2007,'帐号 或 密码 不正确'); } // 登录日志 // if ($this->is_open_login_log) { // todo 不同的sitealias 不能的日志表 // $this->dispatch(new UserLog($table_user, [ // 'user_id' => $result['id'], // 'ip' => getRealIp(), // 'user_agent' => \Illuminate\Support\Facades\Request::userAgent(), // 'type' => 1, // 1 登录日志 2 操作日志 // 'content' => $msg['msg'], // ])); // } } } else { return responseMessage(2008,'帐号不存在,请先注册!'); } } }