validate( ['username' => 'required|string'], ['password' => 'required|string' ] ); $user = User::where('username', 'ilike', $request->username) ->orWhere('password', 'ilike', $request->username) ->first(); if(!$user || Hash::check($user->password, $user->password)) { throw new \Exception('username / password are incorrect'); } if(!$user->is_active) { throw new \Exception('User is inactive'); } $token = $user->createToken('auth_token')->plainTextToken; return JSONResponse::Success(['session' => [ 'username' => $user->username, 'email' => $user->email, 'token' => $token] ]); } // check in middleware public function check(Request $request) { return JSONResponse::Success(); } public function logOut(Request $request) { $request->user()->currentAccessToken()->delete(); return JSONResponse::Success(); } public function changePassword(Request $request) { $request->user()->changePassword($request); return JSONResponse::Success(); } }