关于Laravel CSRF 的问题求助

 我来答
匿名用户
2016-04-06
展开全部
简单描述:

提交的表单中已经加入了 _token字段
开机-》打开浏览器-》进入网站,此时默认已登录,记住了上次的登录
然后提交了个form 就出现了 token miss match 的异常
public function handle($request, Closure $next)
{
if ($this->isReading($request) || $this->tokensMatch($request))
{
return $this->addCookieToResponse($request, $next($request));
}

throw new TokenMismatchException;
}
抛出异常的位置,最后的那个throw,进一步跟入$this->tokensMatch方法发现

return StringUtils::eq www.hbbz08.com uals($request->session()->token(), $token);
这个反回false,也就是我每次产生的token和session中得token会不一致。

这里就不理解了,如果我浏览器一直开着,session不过期,那么每次提交又都会生成新的token,是不是每次都会验证失败?

想到这个地方有点乱了,是不是哪个地方进入误区了? 向大家求助....

update:

前面理解错了一个地方,csrf()那个函数原来就是从session中取的token,当成是每次随机生成了.这样的话可能不知道什么原因导致token变了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
危梦月0h4b8b
2017-05-25 · 超过23用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:36.1万
展开全部
这个是csrf token过期了
看我博客有刷新的例子
http://blog.liusida.cn/content/6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式