I’m trying to logout and redirect my user back to login blade once the user’s password is changed successfully.
This is my controller so far (only the function is included),
public function store(Request $request) { $request->validate([ 'current_password' => ['required', new MatchOldPassword], 'new_password' => ['required', 'string', 'min:12', 'confirmed','regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[@$!%*?&])[A-Za-zd@$!%*?&]{12,}$/'], 'new_confirm_password' => ['same:new_password'], ]); User::find(auth()->user()->id)->update(['password'=> Hash::make($request->new_password)]); //dd('Password change successfully.'); }
Here on success how can I logout and redirect my user back to login blade with a success message (Pass word has been changed. Please log in again)
Advertisement
Answer
I have two solution to this problem. Simply add with
function to create a flash message you wanted.
Solution 1: Go to the
AuthenticatesUsers.php
and inside the logout
function change the redirected route from /
to /login
. (Assuming your using make:auth
)
public function logout(Request $request) { //more codes here return $request->wantsJson() ? new Response('', 204) : redirect('/login')->with('success', 'Password change successfully.'); }
Solution 2: Make a customed one. Create a controller function and add these following codes below:
public function logout() { Auth::logout(); return redirect('/login')->with('success', 'Password change successfully.'); }