auth = $auth; $this->passwords = $passwords; $this->middleware('guest', ['only' => ['getLogin', 'postLogin', 'getRegister', 'postRegister']]); $this->middleware('auth', ['only' => ['getLogout', 'getProfile', 'patchProfile']]); } public function getLogin() { return view('auth.login'); } public function postLogin(Request $request) { $loginData = $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); if (Auth::attempt($loginData)) { flash()->success(trans('auth.welcome', ['name' => Auth::user()->name])); return redirect()->intended('home'); } flash()->error(trans('auth.failed')); return redirect()->back()->withInput(); } public function getLogout() { Auth::logout(); flash()->success('Anda telah logout.'); return redirect()->route('auth.login'); } public function getRegister() { return view('auth.register'); } public function postRegister(RegisterRequest $request) { $registerData = $request->only('name', 'email', 'password'); $user = User::create($registerData); $user->assignRole('customer'); Auth::login($user); flash()->success(trans('auth.welcome', ['name' => $user->name])); return redirect()->route('home'); } public function getProfile() { $user = Auth::user(); return view('auth.profile', compact('user')); } public function patchProfile(Request $request) { $profileData = $request->validate([ 'name' => 'required|max:60', 'email' => 'required|email', ]); $user = auth()->user(); $user->name = $profileData['name']; $user->email = $profileData['email']; $user->save(); flash()->success(trans('auth.profile_updated')); return back(); } }