Laravel 密码重置令牌

Mat*_*rce 5 laravel laravel-5

好吧,这很初学者,但我想要一个解释。在下面的“postReset”方法中的内置 Laravel 密码重置中,它指定了“token”...但是,当使用 {!! csrf_field() !!} 在视图中,它生成为输入 name="_token"。匹配名称时 _ 算作实际字符吗?只是混淆了数据库迁移如何使用“token”,但 csrf 字段将输入名称设置为“_token”。

public function postReset(Request $request)
    {
        $this->validate($request, [
            'token' => 'required',
            'email' => 'required|email',
            'password' => 'required|confirmed|min:6',
        ]);

        $credentials = $request->only(
            'email', 'password', 'password_confirmation', 'token'
        );

        $response = Password::reset($credentials, function ($user, $password) {
            $this->resetPassword($user, $password);
        });
Run Code Online (Sandbox Code Playgroud)

谢谢,

Sul*_*een 3

您不需要_token密码重置或迁移。但如果您要在 post 方法中向 laravel 发送任何输入,则绝对需要它。

Laravel 可以轻松保护您的应用程序免受跨站点请求伪造(CSRF)攻击。跨站点请求伪造是一种恶意利用,代表经过身份验证的用户执行未经授权的命令。

来源

如何在我的表单中包含 csrf 令牌?

您可以将 csrf 令牌包含在表单中

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
Run Code Online (Sandbox Code Playgroud)

提示 :

您可以在里面处理CSRF Token过滤器之后的操作

app\Http\Middleware\VerifyCsrfToken.php
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助。