- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在同一台服务器上托管了多个 Laravel 站点。使用我创建的最新站点,联系表单拒绝提交而不会引发 419 错误。我已经在我的 web.php 文件中设置了路由,就像其他网站一样,这些网站具有实时、有效的联系表格,并且我以完全相同的方式生成和发送 token - 使用 {{ csrf_field() }}
.
我找到了一个类似问题的答案,指出您可以通过向 $except
添加条目来禁用 Csrf 检查。 app/Http/Middleware/VerifyCsrfToken.php
中的数组.我已经验证这确实解决了 419 错误:
protected $except = [
'contact',
'contact*',
];
但当然我希望保留 Csrf 功能,我只更新了
$except
用于故障排除值的数组。
$except
之外别无他法。 array 对这个问题有任何影响。
$("#formName").submit();
在控制台窗口中。
.submit();
的 jquery 选择器)都导致完全相同的响应 - 419 错误。
console.log()
紧跟其后的语句(再次)确认 token 生成得很好,并且正在与请求一起正确传递。
var postData = {
name: $("#name").val(),
email: $("#email").val(),
message: $("#message").val(),
_token: $("input[name=_token]").val()
};
console.log(postData);
$.post("/contact", postData, function (data) {
...
有任何想法吗?我的 ENV 或其他文件是否存在配置问题?
php artisan --version
在站点的克隆版本与非工作版本上,结果如下:
Working Version: Laravel Framework 5.7.3
Non-working Version: Laravel Framework 5.7.9
最佳答案
TLDR: This post contains lots of potential issues and fixes; it is intended for those scouring for related bonus information when stuck.
auth:sanctum
守卫的中间件,它是
auth
的某种扩展Laravel 默认使用的守卫,但 session 由
web
处理中间件组。
api.php
文件,我有登录/注册/注销路由,在我的
Kernel.php
中文件,我复制了
\Illuminate\Session\Middleware\StartSession::class,
从 web 组到 api 组。
postJson
请求在单元测试中工作,但过了一段时间,我开始看到 JavaScript 应用程序发布 419 CSRF 错误(这很糟糕,因为它之前工作得很好)。
/storage/framework/sessions
中追逐一些文件系统权限红鲱鱼文件夹,但问题不在于(对我而言)。
AuthenticatesUsers
trait,你必须使用
web
保护身份验证,以及
auth:sanctum
protected 路由的中间件。我试图使用
api
保护身份验证路由,这是我的 AuthenticatesUsers 特征的 419 错误的核心。
\Log::debug()
对系统中需要这些工作的所有关键点进行调查:
Auth::check()
Auth::user()
Auth::logout()
sessions
有关。或与
web
相关的配置有问题,
api
guard 。
AuthManager
有影响保护多个请求和多个单元测试的状态。
web
的数据生成 CSRF token 。中间件组,而您的路由设置为使用
api
,他们可能会错误地解释收到的 CSRF。
XSRF-TOKEN
cookie 不安全(即:不是 httpOnly)。
import Cookies from 'js-cookie';
axios.interceptors.request.use(async (request) => {
try {
const csrf = Cookies.get('XSRF-TOKEN');
request.withCredentials = true;
if (csrf) {
request.headers.common['XSRF-TOKEN'] = csrf;
}
return request;
} catch (err) {
throw new Error(`axios# Problem with request during pre-flight phase: ${err}.`);
}
});
<meta name="csrf-token" content="{{ csrf_token() }}">
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
const token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
./.env
./config/auth.php
./config/session.php
access.log
和/或
error.log
文件;它们可能包含一个提示。
关于php - Laravel 419 错误 - VerifyCsrfToken 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52764590/
我在从验证 CSRF token 中排除路由时遇到问题。 我试图排除我称为 mydomain.com/example 的端点上的所有请求,所以我在 VerifyCsrfToken.php 文件中这样做
我尝试构建自己的 API。我开始,所以我目前唯一的模型是“用户”。这是我想调用我的 API 的方式: HTTP/POST http://example.com/api/user/ #
我有一个 papge 需要 api 来发布 我的路线设置里面是 Route::post('/commitmoney/{api}/{payment}', 'CommitmoneyController@p
我在同一台服务器上托管了多个 Laravel 站点。使用我创建的最新站点,联系表单拒绝提交而不会引发 419 错误。我已经在我的 web.php 文件中设置了路由,就像其他网站一样,这些网站具有实时、
我正在使用 Laravel 5.1 构建 REST API,但出现此错误: TokenMismatchException in VerifyCsrfToken.php line 53: 这是我的rou
我知道这是 Laravel 中表单之类的已知错误。但我在 Laravel 5.2 中面临基本身份验证的问题。 我使用 Laravel 创建了身份验证; php artisan make:auth 现在
我有一个模态登录表单。它位于 header.php 文件中(头文件位于views/include 中),该文件已包含到welcome.blade.php 文件中。当我提交登录表单时,出现此错误“Ver
当我尝试在 Laravel 5.2 中使用 auth 时出现此错误。那是在移动到实时服务器之后发生的。在我的本地服务器上一切正常。 Token inside form 和 is Session:tok
我正在使用 Laravel 5 开发应用程序。我的应用程序与 VendHQ API 连接,我打算通过他们的 webhook 从 VendHQ 获取一些数据。根据他们的Documentation Whe
当我第一次登录时,它运行良好,但当我从我的应用程序注销并尝试重新登录时,出现此错误。 我几乎尝试了所有可用的解决方案,但无法解决问题。有解决此错误的解决方案吗? 这是我执行登录和注销的方式(如果代码错
我将 Dingo 与 Laravel 5.1 结合使用来创建简单的 API。 所以在 route.php 我有: $api = app('Dingo\Api\Routing\Router'); $ap
尽管搜索了 Stack OverFlow 并尝试了在类似问题中提出的所有建议,但我仍在努力通过此异常。 我接管了这个网站,并负责让它在 AWS 上运行。目前,我没有做任何冒险的事情,只是将批处理复制到
当我尝试登录时显示 token 错误。我已经检查了 View 形式的 token 是正确的,当评论 \App\Http\Middleware\VerifyCsrfToken::class 时,在 Ke
实际上,我想在注册过程后将我的用户重定向到电子邮件验证页面,并要求他/她输入发送到他/她的电子邮件的验证码。如果您告诉我过程或推荐任何教程,我将很高兴。 我已经建立了我的工作认证系统。我在互联网上搜索
当我登录我的应用程序并在我输入它时立即返回,然后尝试注销时,我从标题中收到错误,我该如何解决? 最佳答案 我在 laravel 5.4 上遇到了同样的问题 .. 然后下面的命令对我有用:) chmod
我正在尝试在图片上传中集成进度条。当我使用 PHP 提交表单时,我的代码工作正常,但是当我在进度条中包含 javascript 时,出现错误“VerifyCsrfToken.php 第 67 行中的
这个 View 有一个调用 javascript 函数的链接 @extends('layouts.main') @section('content')
刚刚在 Laravel 5 中启动了一个新应用程序,但我在使用开箱即用的身份验证时遇到了一些问题... 我不断收到:VerifyCsrfToken.php 第 46 行中的 TokenMismatch
我写了我的自定义中间件,但是当它执行时,出现错误。中间件: namespace App\Http\Middleware; use Closure; use Illuminate\Support\Fac
我在弹出警报中使用 Laravel 5 和 ajax post,它给了我错误“500 内部服务器错误”,当我检查 firebug 时,我发现 ajax 返回一个错误页面,显示“VerifyCsrfTo
我是一名优秀的程序员,十分优秀!