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

时间:2017-06-15 07:50:37

标签: php laravel authentication 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');
    }
}

当我尝试将$ redirect更改为变量登录时,它会向我抛出一个页面无效的错误.....我只是处于困惑状态请帮助

1 个答案:

答案 0 :(得分:4)

您需要关注位于ResetPasswordController

app/Http/Controllers/Auth.中的更改

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

protected $redirectTo = '/login';

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

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

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

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

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