|
@@ -28,8 +28,6 @@ class LoginController extends AbstractController
|
|
|
private $userServiceClient;
|
|
|
public function login(Jwt $jwt)
|
|
|
{
|
|
|
- var_dump("我要登陆了");
|
|
|
-// $this->logger->info("验证之前");
|
|
|
|
|
|
$reqData = $this->request->all();
|
|
|
$validator = $this->validationFactory->make(
|
|
@@ -38,11 +36,13 @@ class LoginController extends AbstractController
|
|
|
'username' => 'required',
|
|
|
'password' => 'required',
|
|
|
'type' => 'required',
|
|
|
+ 'code' => 'required',
|
|
|
],
|
|
|
[
|
|
|
'username.required' => '用户名不能为空',
|
|
|
'password.required' => '密码不能为空',
|
|
|
'type.required' => '登录方式必填',
|
|
|
+ 'code.required' => 'code方式必填',
|
|
|
]
|
|
|
);
|
|
|
|
|
@@ -50,72 +50,58 @@ class LoginController extends AbstractController
|
|
|
$errorMessage = $validator->errors()->first();
|
|
|
return Result::error($errorMessage);
|
|
|
}
|
|
|
- $comm = new CommonService();
|
|
|
- $ip = $comm->userIp();
|
|
|
+// $comm = new CommonService();
|
|
|
$redis = $this->container->get(\Hyperf\Redis\Redis::class);
|
|
|
- $code = $redis->get('code' . $ip);
|
|
|
+ $code = $redis->get($reqData['code']);
|
|
|
if (empty($code)) {
|
|
|
return Result::error("验证码已过期");
|
|
|
}
|
|
|
- var_dump("验证码:", $code);
|
|
|
- var_dump((strtolower($code) . strtolower($reqData['captcha'])));
|
|
|
if (strtolower($code) != strtolower($reqData['captcha'])) {
|
|
|
return Result::error("验证码错误");
|
|
|
}
|
|
|
- //$reqData
|
|
|
$where = [];
|
|
|
if ($reqData['type'] == 1) { //密码登录
|
|
|
$where = [
|
|
|
'user_name' => $reqData['username'],
|
|
|
];
|
|
|
- }
|
|
|
- // var_dump("where:", $where);
|
|
|
-// $this->logger->info("验证之前");
|
|
|
+ }
|
|
|
$userInfos = $this->userServiceClient->verifyUserInfo($where);
|
|
|
if ($userInfos['code'] == 0) {
|
|
|
return Result::error("用户不存在");
|
|
|
}
|
|
|
- // var_dump("数据:",$userInfos);
|
|
|
if($userInfos['data']['status']==0){
|
|
|
return Result::error("用户已经冻结");
|
|
|
}
|
|
|
- // var_dump("用户信息:", $userInfos);
|
|
|
-// $this->logger->info("验证用户返回值:", $userInfos);
|
|
|
if (md5(md5($reqData['password']) . $userInfos['data']['salt']) != $userInfos['data']['password']) {
|
|
|
return Result::error("登陆密码错误");
|
|
|
}
|
|
|
+ if($userInfos['data']['type_id']!=10000){
|
|
|
+ $authData = [
|
|
|
+ 'id'=>$userInfos['data']['sszq']
|
|
|
+ ];
|
|
|
+ $resultAuth = $this->checkUserAuth($authData);
|
|
|
+ if(!$resultAuth){
|
|
|
+ return Result::error("您没有权限登陆此网站");
|
|
|
+ }
|
|
|
+ }
|
|
|
$userData = [
|
|
|
'uid' => $userInfos['data']['id'], // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
|
|
|
'user_name' => $userInfos['data']['user_name'],
|
|
|
'mobile' => $userInfos['data']['mobile'],
|
|
|
'email' => $userInfos['data']['email'],
|
|
|
- // 'rong_token' => $userInfos['data']['rong_token'],
|
|
|
'level_id' => $userInfos['data']['level_id'],
|
|
|
'type_id' => $userInfos['data']['type_id'],
|
|
|
];
|
|
|
- // var_dump($userData);
|
|
|
// 使用默认场景登录
|
|
|
$token = $jwt->getToken('default', $userData);
|
|
|
- // $out = $jwt->logout($token->toString());
|
|
|
- // $a = $jwt->verifyToken($token->toString());
|
|
|
- // 检查是否二次登录 测试
|
|
|
-
|
|
|
// 检查是否有旧的token
|
|
|
- // var_dump("--------------",$token);
|
|
|
- // return Result::success($a);
|
|
|
$old_token = UserToken::where('user_id', $userData['uid'])->first();
|
|
|
- // // var_dump("==============================old_token",$old_token->token->toString());
|
|
|
if (!empty($old_token)) {
|
|
|
- // // var_dump("==============================out",$old_token->token);
|
|
|
$jwt->logout($old_token->token);
|
|
|
try {
|
|
|
$jwt->verifyToken($old_token->token);
|
|
|
- // // $a = $jwt->verifyToken($token);
|
|
|
- // var_dump("======:",$a);
|
|
|
}catch (\Exception $exception){
|
|
|
- var_dump("接收:",$exception->getCode());
|
|
|
- $code = $exception->getCode();
|
|
|
- // var_dump($code);
|
|
|
+ $code = $exception->getCode();
|
|
|
if ($code== 400) {
|
|
|
$new_token = UserToken::where('user_id', $userData['uid'])->update(['token' => $token->toString()]);
|
|
|
if (empty($new_token)) {
|
|
@@ -126,24 +112,16 @@ class LoginController extends AbstractController
|
|
|
return Result::error("Token过期失败!");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- var_dump("======:",$code);
|
|
|
- // return Result::success($code);
|
|
|
-
|
|
|
-
|
|
|
}else{
|
|
|
- // var_dump("==============================in",$token);
|
|
|
$usernew_token = $token->toString();
|
|
|
$user_token = UserToken::create([
|
|
|
'user_id' => $userData['uid'],
|
|
|
'token' => $usernew_token
|
|
|
]);
|
|
|
- // // var_dump("==============================user_token",$token->toString());
|
|
|
if (empty($user_token)) {
|
|
|
return Result::error("登录失败!");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
$data = [
|
|
|
'token' => $token->toString(),
|
|
|
'exp' => $jwt->getTTL($token->toString()),
|
|
@@ -329,4 +307,26 @@ class LoginController extends AbstractController
|
|
|
var_dump($h['token'][0], "+++++++++++", $arr, "===####");
|
|
|
return $this->response->json(['code' => 0, 'msg' => 'success', 'data' => ['a' => 1]]);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检测用户权限
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function checkUserAuth($data)
|
|
|
+ {
|
|
|
+ $websiteGroup = [
|
|
|
+ 'id'=>$data['id']
|
|
|
+ ];
|
|
|
+ $result = $this->userServiceClient->getWebsiteGroupInfo($websiteGroup);
|
|
|
+ var_dump("webids:",$result['data']['web_ids']);
|
|
|
+ if($result['code']==200){
|
|
|
+ if($data['siteId'] && $result['data']['web_ids']){
|
|
|
+ if(in_array($data['siteId'],$result['data']['web_ids'])){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|