重置密码后我需要重定向到登录页面。你们能帮帮我吗?它会自动重定向到“/”网址。
3753 次
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 回答