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-&gt;middleware('auth'); 删除此行 还有什么?

以上是关于Laravel 5.5 密码重置令牌表单未出现的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 手动生成重置密码令牌:收到错误“此密码重置令牌无效”

Laravel 更改密码重置特定令牌的令牌持续时间

Laravel 5.1/AngularJS:在 Angular 视图中重置密码(如何验证 CSRF 令牌?)

Laravel 5 密码重置电子邮件未发送

如何检查密码重置令牌是不是已过期?

Laravel 密码重置电子邮件未在 Heroku 上使用 gmail 发送