Laravel 除了令牌不匹配错误
Laravel Except Token Mismatch Error
我的URL
http://laravel/tr/order/fp1/success
VerifyCsrfToken 除了 .
protected $except = [
'order/*'
];
但是我有令牌不匹配错误。
更新:
我正在将数据发布到外部网页(银行服务器),他们正在发布到我的网站。
根据 Op 的评论,请求似乎来自外部站点,我们无法从我们的应用程序生成 csrf 令牌。
所以,有两种可能的解决方案
方法一:
请求应该从先前请求的应用程序中获取 csrf 令牌,然后使用令牌发送请求
方法二:
您应该在传入请求中附加一个参数,并将其放在 app\Http\Middleware\VerifyCsrfToken.php
$paramExist= $request->yourSecretParam;
#return parent::handle($request, $next);
if(isset($paramExist))
{
$yourSpecialkey ='a2$%$'; #This to check whether the param has the value that you set
if($paramExist==$yourSpecialKey)
{
return $next($request);
}
else
{
return parent::handle($request, $next);
}
}
else
{
return parent::handle($request, $next);
}
通过这个你可以检查请求是否与外部应用程序的参数值不匹配。
希望对您有所帮助
我解决了问题。
在Except 属性中我们要写URI。但是我没有写语言路径。
protected $except = [
'tr/order/*'
];
如果我写语言路径。这是工作。但是硬编码语言路径不合逻辑。
我在 Laravel 中覆盖了 BaseVerifier 的 shouldPassThrough。
protected $except = [
'order/*',
];
protected function shouldPassThrough($request)
{
foreach ($this->except as $except) {
if ($request->is(trim(Lang::locale().'/'.$except, '/'))) {
return true;
}
}
return false;
}
我们加上Lang::locale().'/'
现在不用写语言路径就可以使用except 属性
我的URL
http://laravel/tr/order/fp1/success
VerifyCsrfToken 除了 .
protected $except = [
'order/*'
];
但是我有令牌不匹配错误。
更新:
我正在将数据发布到外部网页(银行服务器),他们正在发布到我的网站。
根据 Op 的评论,请求似乎来自外部站点,我们无法从我们的应用程序生成 csrf 令牌。
所以,有两种可能的解决方案
方法一:
请求应该从先前请求的应用程序中获取 csrf 令牌,然后使用令牌发送请求
方法二:
您应该在传入请求中附加一个参数,并将其放在 app\Http\Middleware\VerifyCsrfToken.php
$paramExist= $request->yourSecretParam;
#return parent::handle($request, $next);
if(isset($paramExist))
{
$yourSpecialkey ='a2$%$'; #This to check whether the param has the value that you set
if($paramExist==$yourSpecialKey)
{
return $next($request);
}
else
{
return parent::handle($request, $next);
}
}
else
{
return parent::handle($request, $next);
}
通过这个你可以检查请求是否与外部应用程序的参数值不匹配。
希望对您有所帮助
我解决了问题。
在Except 属性中我们要写URI。但是我没有写语言路径。
protected $except = [
'tr/order/*'
];
如果我写语言路径。这是工作。但是硬编码语言路径不合逻辑。
我在 Laravel 中覆盖了 BaseVerifier 的 shouldPassThrough。
protected $except = [
'order/*',
];
protected function shouldPassThrough($request)
{
foreach ($this->except as $except) {
if ($request->is(trim(Lang::locale().'/'.$except, '/'))) {
return true;
}
}
return false;
}
我们加上Lang::locale().'/'
现在不用写语言路径就可以使用except 属性