路线后方法中的Laravel错误

时间:2016-02-07 00:55:36

标签: laravel laravel-5 laravel-5.2

我有这些路线,

Route::group(['middleware' => ['web']], function () {
    //
    // Route definition for showing the login page
    Route::get('login', function() 
    {    
        // Display a placeholder text to the user
        return '<form action="login" method="post">             
                    Username: <input type="text" name="username"><br>           
                    Password: <input type="password" name="password">           
                    <input type="submit" value="Submit">                    
                </form>';       
    });

    // Route definition for processing the login form
    Route::post('login', function()
    {    
        // Display a placeholder text to the user
        return 'Username:'.$_POST["username"].',Password: '.$_POST["password"];
    });
});

当我转到http://localhost:8000/login然后我输入用户名和密码但路由:post产生此错误?

哎呀,好像出了什么问题。 VerifyCsrfToken.php第67行中的1/1 TokenMismatchException:

2 个答案:

答案 0 :(得分:3)

你需要在表单中放入csrf标记..

<form method="POST" action="login">
{{ csrf_field() }}

<input type="text" name="username">
<input type="password" name="password">

<button type="submit">Submit</button>

</form>

答案 1 :(得分:0)

如果您要发送帖子数据并且未在表单中定义csrf令牌,则laravel会抛出异常,如下所示:

Whoops, looks like something went wrong. 1/1 TokenMismatchException in VerifyCsrfToken.php line 67

如果你想删除laravel默认提供的csrf令牌功能你只需将注释放入

app/Http/Kernel.php - 文件行号:20

//\App\Http\Middleware\VerifyCsrfToken::class,

然后整个项目CSRF(跨站点请求伪造)功能将无效。

但我建议你不要禁用CSRF保护。因为这会自动检测天气,请求是正确/安全的,还是不是入侵者攻击。