with('roles') ->whereHas('userDetail',function ($query)use($phone){ /** @var Builder $query */ $query->where('mobile_phone',$phone); })->whereHas('roles',function ($builder){ /** @var Builder $builder */ $builder->whereIn('name',['供应商','收货员']); }) ->first(); if (!$user)return response()->json(['status'=>0,'message' => '当前用户不存在!'], 401); if (!Hash::check($password,$user->password)) return response()->json(['status'=>0,'message' => '很抱歉,您的手机号和密码不匹配'], 401); $credentials = [ 'id'=>$user->id, 'name'=>$user->name, ]; $token = $this->getJWTToken($credentials); $userType=0; foreach ($user->roles as $role){ if ($role->name=='供应商')$userType=1; if ($role->name=='收货员')$userType=2; } return response()->json(['status'=>1,'message' => $userType,'data'=>$token], 200); } public function getJWTToken($value) { $time = time(); $payload = [ 'iat' => $time, 'nbf' => $time, 'exp' => $time+7200, 'data' => [ 'id' => $value['id'], 'name' => $value['name'] ] ]; $key = env('JWT_SECRET'); $alg = 'HS256'; $token = JWT::encode($payload,$key,$alg); return $token; } }