我有这些路线,
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:答案 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保护。因为这会自动检测天气,请求是正确/安全的,还是不是入侵者攻击。