|
|
|
@ -308,4 +308,73 @@ class Passport extends BaseController |
|
|
|
return $this->renderError($exception->getMessage(),$data); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function mixedLogin() |
|
|
|
{ |
|
|
|
|
|
|
|
$param = Request::param(); |
|
|
|
|
|
|
|
$count = 0; |
|
|
|
$defaultCount = 3;# 默认登陆三次提示验证码 |
|
|
|
$cookie_name = 'login_count'.$_SERVER['HTTP_HOST']; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
$InitData = new InitData(); |
|
|
|
$InitData->init(); |
|
|
|
|
|
|
|
// 验证用户输入 |
|
|
|
validate()->rule([ |
|
|
|
'account_number|账号或手机号' => 'require|min:4|max:16', |
|
|
|
'password|密码' => 'require|min:6|max:20', |
|
|
|
])->scene('adminLogin')->check($param); |
|
|
|
|
|
|
|
# 验证码验证 |
|
|
|
if ($count = Cookie::get($cookie_name) ?: 0) { |
|
|
|
Cookie::set($cookie_name,$count+1); |
|
|
|
} else { |
|
|
|
Cookie::set($cookie_name,1); |
|
|
|
} |
|
|
|
if ($count > $defaultCount) { |
|
|
|
$this->validate($param,['captcha|验证码'=>'require|captcha']); |
|
|
|
} |
|
|
|
|
|
|
|
# 登录 |
|
|
|
$data = $param; |
|
|
|
$data['phone'] = $param['account_number']; |
|
|
|
$userModel = new UserModel(); |
|
|
|
$user = $userModel->login($data); |
|
|
|
if ($user['status']) { |
|
|
|
$userinfo = ['id' => $user['data']['id'], 'avatar' => get_image_url($user['data']['avatar']), 'time' => time()]; |
|
|
|
$token = ['token'=>signToken($userinfo),'type' => 3]; |
|
|
|
Cookie::delete($cookie_name); |
|
|
|
return $this->renderSuccess('登陆成功',$token); |
|
|
|
} |
|
|
|
// 管理员登陆 |
|
|
|
$adminUser = AdminUser::login($param); |
|
|
|
if ($adminUser['status']) { |
|
|
|
$userinfo = ['id' => $adminUser['data']['id'], 'avatar' => get_image_url($adminUser['data']['avatar']), 'time' => time()]; |
|
|
|
$token = ['token'=>signToken($userinfo),'type' => 2]; |
|
|
|
Cookie::delete($cookie_name); |
|
|
|
return $this->renderSuccess('登陆成功',$token); |
|
|
|
} |
|
|
|
// 代理登陆 |
|
|
|
$agentUser = AgentUser::login($data); |
|
|
|
if ($agentUser['status']) { |
|
|
|
$userinfo = ['id' => $agentUser['data']['id'], 'avatar' => get_image_url($agentUser['data']['avatar']), 'time' => time()]; |
|
|
|
$token = ['token'=>signToken($userinfo),'type' => 1]; |
|
|
|
Cookie::delete($cookie_name); |
|
|
|
return $this->renderSuccess('登陆成功',$token); |
|
|
|
} |
|
|
|
|
|
|
|
throw new ValidateException('账号或密码,不正确'); |
|
|
|
} catch (ValidateException $validateException) { |
|
|
|
|
|
|
|
$data = ['captcha_img' => '']; |
|
|
|
if ($count >= $defaultCount) $data['captcha_img'] = captcha_src(); |
|
|
|
return $this->renderError($validateException->getMessage(),$data); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |