validateRequest($request); if ($this->checkLogin($request)) { $user = Auth::user(); $result['status'] = 'success'; $result['message'] = 'Login Successfully'; $result['user'] = $user; $result['election_status'] = Util::getElectionStatus(); $result['token'] = $user->createToken('My app', ['admin'])->accessToken; activity() ->performedOn($user) ->withProperties([ 'admin_id' => $user->id, 'admin_name' => $user->name, 'admin_email' => $user->email, 'admin_role' => $user->role, 'ip' => $request->ip(), 'user_agent' => $request->userAgent(), ]) ->log("admin login: {$user->email}"); } else { $result['status'] = 'failed'; $result['message'] = 'Wrong email or password'; activity() ->withProperties([ 'admin_email' => (string) $request->input('email'), 'ip' => $request->ip(), 'user_agent' => $request->userAgent(), ]) ->log('admin login failed'); } return response()->json($result); } /** * Validate Request * @param {Request} $request * @return {Boolean} isValid */ private function validateRequest($request) { $this->validate($request, [ 'email' => 'required|email', 'password'=> 'required' ]); } /** * Check Credential * @param {Request} $request * @return {Boolean} isLogin */ private function checkLogin($request) { return Auth::attempt([ 'email' => $request->email, 'password' => $request->password ]); } }