middleware('auth:api', ['except' => ['login']]); } /** * Get a JWT via given credentials. * * @return \Illuminate\Http\JsonResponse */ public function login(AuthService $auth){ try { $this->data['data'] = $auth->login(); $this->data['code'] = 1; } catch (\Throwable $th) { $this->data['message'] = $th->getMessage(); } return $this->data; } /** * Get the authenticated User. * * @return \Illuminate\Http\JsonResponse */ public function me(){ $this->data['data'] = auth()->user()->load(['roles', 'department']); return $this->data; } /** * Log the user out (Invalidate the token). * * @return \Illuminate\Http\JsonResponse */ public function logout(){ auth()->logout(); return response()->json(['message' => 'Successfully logged out']); } /** * Refresh a token. * * @return \Illuminate\Http\JsonResponse */ public function refresh(){ return $this->respondWithToken(auth()->refresh()); } /** * Get the token array structure. * * @param string $token * * @return \Illuminate\Http\JsonResponse */ protected function respondWithToken($token){ return response()->json([ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => auth()->factory()->getTTL() * 60 ]); } }