1

重置密码后我需要重定向到登录页面。你们能帮帮我吗?它会自动重定向到“/”网址。

4

3 回答 3

3

Laravel 5.8中你可以这样做 - 在你的ResetPasswordController中应该像下面这样它会起作用

<?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');
    }
}
于 2019-05-04T18:23:47.847 回答
1

我得到的唯一解决方案是,更改位于 vendor/laravel/framework/src/illuminate/Foundation/Auth 文件夹的 ResetPasswords.php 文件中的函数。

 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');
}
于 2019-05-06T10:12:51.377 回答
0

如果你使用 laravel auth,你可以在这里找到 ResetPasswordController:

 App\Http\Controllers\Auth\ResetPasswordController

并简单地改变:

protected $redirectTo

路由你想要的。

如果您想在重置密码后忽略登录,您应该在 ResetPasswords 特征中编辑 ResetPassword 函数,该函数在 ResetPasswordController 中使用,如下所示:

    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);
}
于 2019-05-04T18:00:05.243 回答