在laravel中重置密码后重定向到登录页面

Kar*_*iga 0 php authentication laravel laravel-5.4

我正在使用laravel 5.4和auth进行登录,注册,密码重置功能,当我尝试重置密码时,一切正常,它发送电子邮件并更改密码,效果很好..更改新密码后,它将我重定向到首页,并且自动登录,但是我想要的是更改密码后将我重定向到登录页面,以便使用人员可以检查更改后的密码是否正常工作。

所以我的问题如何实现这个???

而我的ResetPasswordController是

<?php

namespace App\Http\Controllers\Auth;

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

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 = '/';

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

当我尝试将$ redirect更改为登录变量时,它向我抛出一个页面无法正常工作的错误.....我只是处于混乱状态,请帮助我

小智 5

您需要在以下更改ResetPasswordController位于app/Http/Controllers/Auth.

将重定向路径更改为您的登录页面。

protected $redirectTo = '/login';
Run Code Online (Sandbox Code Playgroud)

覆盖resetPassword方法以防止用户登录。将其添加到控制器。

protected function resetPassword($user, $password)
{
    $user->forceFill([
        'password' => bcrypt($password),
        'remember_token' => Str::random(60),
    ])->save();
}
Run Code Online (Sandbox Code Playgroud)

use Illuminate\Support\Str;在顶部使用。

要发送有关重定向的自定义响应,您可以sendResetResponse在控制器中覆盖并添加任何自定义会话/闪存消息。默认情况下,laravel会在成功重置密码后设置自己的响应。

protected function sendResetResponse($response)
{
    return redirect($this->redirectPath())
                        ->with('status', trans($response));
}
Run Code Online (Sandbox Code Playgroud)