关于Laravel CSRF 的问题求助
2个回答
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变了。
提交的表单中已经加入了 _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变了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询