Bläddra i källkod

新增密码修改,强制下线

cqp 10 månader sedan
förälder
incheckning
9dc63f714a

+ 1 - 1
app/Http/Controllers/Api/LoginController.php

@@ -27,7 +27,7 @@ class LoginController extends BaseController
         if(! $bool) return $this->json_return(201,'',$return);
         if(! $bool) return $this->json_return(201,'',$return);
 
 
         //生成token
         //生成token
-        $jwtToken = TokenService::getToken($return['id']);
+        $jwtToken = TokenService::getToken($return['id'], $data['password']);
         $jwtToken = self::PERSONAL_COMPUTER . $jwtToken;
         $jwtToken = self::PERSONAL_COMPUTER . $jwtToken;
 
 
         return $this->json_return(200,'', ['token' => $jwtToken, 'emp_name'=>$return['name']]);
         return $this->json_return(200,'', ['token' => $jwtToken, 'emp_name'=>$return['name']]);

+ 10 - 7
app/Http/Middleware/CheckLogin.php

@@ -30,20 +30,23 @@ class CheckLogin
         }
         }
 
 
         //校验token
         //校验token
-        $result = TokenService::verifyToken($token);
-        if ($result < 0){
-            return response()->json(['code'=>1,'msg'=>TokenService::error[$result],'data'=>null]);
-        }
+        $return = TokenService::verifyToken($token);
+        $user_id = $return['user_id'] ?? 0;
+        if ($user_id <= 0) return response()->json(['code'=>1,'msg'=>TokenService::error[$user_id],'data'=>null]);
+
+        //密码
+        $psd = $return['psd'] ?? "";
+        if(empty($psd)) return response()->json(['code'=>1,'msg'=>'账号密码失效,请重新登录','data'=>null]);
 
 
         //校验用户
         //校验用户
-        $checkResult = EmployeeService::checkUser($result);
+        $checkResult = EmployeeService::checkUser($user_id, $psd);
         list($state, $data) = $checkResult;
         list($state, $data) = $checkResult;
         if(! $state) return response()->json(['code'=>1,'msg'=>$data,'data'=>null]);
         if(! $state) return response()->json(['code'=>1,'msg'=>$data,'data'=>null]);
 
 
         //人员角色
         //人员角色
-        $data['role'] = EmployeeService::getPersonRole($result);
+        $data['role'] = EmployeeService::getPersonRole($user_id);
         //部门权限
         //部门权限
-        $data['rule_depart'] = EmployeeService::getPersonDepart($result);
+        $data['rule_depart'] = EmployeeService::getPersonDepart($user_id);
         //写入user信息
         //写入user信息
         $request->userData = $data;
         $request->userData = $data;
 
 

+ 2 - 1
app/Service/EmployeeService.php

@@ -538,12 +538,13 @@ class EmployeeService extends Service
         return [true, ['id'=>$res['id'], 'name'=>$res['emp_name'], 'account' => $res['account']]];
         return [true, ['id'=>$res['id'], 'name'=>$res['emp_name'], 'account' => $res['account']]];
     }
     }
 
 
-    public static function checkUser($userId){
+    public static function checkUser($userId, $psd){
         $res = Employee::where('id', $userId)
         $res = Employee::where('id', $userId)
             ->where('del_time',0)
             ->where('del_time',0)
             ->where('is_admin',Employee::IS_ADMIN)
             ->where('is_admin',Employee::IS_ADMIN)
             ->where('state',Employee::USE)->get()->first();
             ->where('state',Employee::USE)->get()->first();
         if(empty($res)) return [false, '该账号无法登录,请联系管理员!'];
         if(empty($res)) return [false, '该账号无法登录,请联系管理员!'];
+        if(! Hash::check($psd, $res->password)) return [false,'账号密码失效,请重新登录'];
 
 
         return [true, $res];
         return [true, $res];
     }
     }

+ 4 - 3
app/Service/TokenService.php

@@ -23,13 +23,14 @@ class TokenService
      * Time: 16:43
      * Time: 16:43
      * 获取token(登录以后)
      * 获取token(登录以后)
      */
      */
-    public static function getToken($userId) :string{
+    public static function getToken($userId, $password = "") :string{
         $token = array(
         $token = array(
             "iat"=> time(), //签发时间
             "iat"=> time(), //签发时间
             "nbf"=> time() - 1, //生效时间  (立即生效)
             "nbf"=> time() - 1, //生效时间  (立即生效)
             "exp"=> time() + TokenService::validity,
             "exp"=> time() + TokenService::validity,
             "data"=> [
             "data"=> [
-                'user_id' => $userId
+                'user_id' => $userId,
+                'psd' => $password
             ]
             ]
         );
         );
         return JWT::encode($token,TokenService::key,"HS256");
         return JWT::encode($token,TokenService::key,"HS256");
@@ -48,7 +49,7 @@ class TokenService
             $decoded = JWT::decode($token,new Key(TokenService::key, "HS256")); //HS256方式,这里要和签发的时候对应
             $decoded = JWT::decode($token,new Key(TokenService::key, "HS256")); //HS256方式,这里要和签发的时候对应
 
 
             $arr = (array)$decoded;
             $arr = (array)$decoded;
-            return $arr['data']->user_id;
+            return (array)$arr['data'];
         } catch (\Firebase\JWT\SignatureInvalidException $e) { //签名不正确
         } catch (\Firebase\JWT\SignatureInvalidException $e) { //签名不正确
             return -1;
             return -1;
         } catch (\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用
         } catch (\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用