Laravel 身份验证重置

Laravel Authentication Reset

我遇到困难如何根据 laravel 生成的令牌获取用户 ID?我对framewrok不是很熟悉,谁能帮帮我?

class ForgotPasswordController extends Controller
{
    use SendsPasswordResetEmails;

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

重置密码控制器

class ResetPasswordController extends Controller
{

    use ResetsPasswords;

    protected $redirectTo = '/login';

    public function __construct()
    {

        $this->middleware('guest');
    }

    protected function guard()
    {
        return Auth::guard('user');
    }

    public function broker()
    {
        return Password::broker('users');
    }

    public function showResetForm(Request $request, $token = null)
    {
        var_dump($request->email);
        var_dump( $request->token);

        return view('auth.passwords.reset')->with(
            ['token' => $token, 'email' => $request->email]
        );
    }
}

如何更新密码?我只有通过电子邮件收到的令牌?

检查此步骤,以便您更好地理解 laravel 身份验证的工作原理。

  1. 生成身份验证脚手架:php artisan make:auth
  2. 运行 创建的迁移:php artisan migrate
  3. php artisan route:list检查你的路由列表,你可以看到当你运行make:auth命令时也创建了路由。
  4. 记下 Auth 路由调用的控制器和方法。
  5. 转到路由 web.php 文件。请参阅 Auth::routes();,这会生成默认的 Laravel Auth 路由,如果您不需要全部,请注释或删除此行并添加所需的行。
  6. 如果您注意到控制器和方法,您可以看到在每条路线上调用了什么。在这种特殊情况下,我认为您会寻找 ResetPasswordController,它使用 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php 中的 ResetsPasswords 在那里您可以看到 resets 方法,这就是您必须要做的重写您的 ResetPasswordController。