简体   繁体   中英

Laravel Redirect to login page after Password reset

I need to redirect to login page after resetting password. Can you guys help me..It's automatically redirecting to '/' url.

if you use laravel auth ,you can find ResetPasswordController here:

 App\Http\Controllers\Auth\ResetPasswordController

and simply change:

protected $redirectTo

to route you want.

if you want to ignore login after reset password,you should edit resetPassword function in ResetPasswords trait that use in ResetPasswordController as below :

    protected function resetPassword($user, $password)
{
    $user->password = Hash::make($password);

    $user->setRememberToken(Str::random(60));

    $user->save();

    event(new PasswordReset($user));

    //you should comment below and redirect any route you want like:
    //   return redirect('http://example.com');
    $this->guard()->login($user);
}

In Laravel 5.8 you can do like this - in your ResetPasswordController should be like below it will work

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;

use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Auth\Events\PasswordReset;

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    use ResetsPasswords;

    /**
     * Where to redirect users after resetting their password.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }


    protected function resetPassword($user, $password)
    {
        $user->password = Hash::make($password);

        $user->setRememberToken(Str::random(60));

        $user->save();

        event(new PasswordReset($user));

        return redirect('login');
    }
}

The only solution i got is that,Changing the function in ResetPasswords.php file located at vendor/laravel/framework/src/illuminate/Foundation/Auth folder.

 protected function resetPassword($user, $password)
{
    $user->password = Hash::make($password);

    $user->setRememberToken(Str::random(60));

    $user->save();

    event(new PasswordReset($user));

    return redirect()->route('login');
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM