Laravel 5.5 密码重置令牌表单未出现
Posted
技术标签:
【中文标题】Laravel 5.5 密码重置令牌表单未出现【英文标题】:Laravel 5.5 password reset token form not appearing 【发布时间】:2018-10-18 05:59:30 【问题描述】:在 Laravel 5.5 项目中,我从密码重置表单提交电子邮件 id 后收到以下信息:
http://localhost/administrator/password/reset?41704c353d33830724d76eefa0702b47201d60fe9957552fdf96e29d7c2cc62a
但是,在浏览器中粘贴上述 URL 时,“laravel 日志”显示“local.INFO:无法找到页面”。而且我看到显示的是电子邮件提交表单,而不是密码和确认密码表单。
我的路线定义如下:
Route::group(['prefix' => 'administrator'], function()
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.email');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/token', 'Auth\ResetPasswordController@showResetForm')->name('password.reset.token');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset');
);
我的ResetPasswordController.php如下;
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Model\User;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Facades\Redirect;
use Hash;
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 = '/administrator/password/reset';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
$this->middleware('auth');
/**
* METHOD TO RESET ADMIN PASSWORD
*/
【问题讨论】:
确保您的路线中没有Auth::routes()
不,我没有这个。
你解决了吗?我有同样的问题。
【参考方案1】:
你必须根据情况调整路线。
Route::group(['prefix' => 'administrator'], function()
Route::get('password/reset/token', 'Auth\ResetPasswordController@showResetForm')->name('password.reset.token');
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.email');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset');
);
将password/reset/token
移到password/reset
上方
希望这会有所帮助。
【讨论】:
在授权控制器中我需要写什么吗? 也发布你的控制器public function __construct() $this->middleware('auth');
删除此行
还有什么?以上是关于Laravel 5.5 密码重置令牌表单未出现的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 手动生成重置密码令牌:收到错误“此密码重置令牌无效”