The state does not match. You may be a victim of CSRF.

测试QQ登录接口时时不时出现这个,SDK源码应该没有问题,错误原因是因为state字串没有成功写入到session中去。网上说的那些回调地址不对,或者接口没有验证,通过分析源码完全可以排除的!

原因:请求时的域名和回调时的域名不一致,使得Cookie中保存的SESSIONID不一致,造成回调之后无法获取请求前保存在SESSION中的state的值

本文出自 全栈笔记 版权所有,你可以在保留原文地址:The state does not match. You may be a victim of CSRF. 及作者的情况下到你的网站或博客。

【上一篇】
【下一篇】

您可能感兴趣的文章:

4 个回复

  1. 匿名说道:

    怎么解决啊,哥

    • 任亦伟说道:

      如果原因也是我这个的话,方法1:让请求域名和回调域名一致;方法2:让多个域名共享一个session,也就是共用一个cookie,这样的话,比如aaa.com和www.aaa.com两个域名的cookie中存放的sessionid就会一样,不同的域名都可以访问到session中state.

      • 匿名说道:

        哥啊,就是不知道怎么样保存这个state参数,是不是Oauth.class这个里面的,是的话要怎么改,我都快被这玩意儿整坏了,求帮忙啊。跪谢了。我是小白。说的话最好详细点,谢谢啊。

        • 任亦伟说道:

          不好意思啊,博客我不一定天天在看的,需要帮助的话,可以联系我的电子邮件:renyiwei@126.com 或者加我QQ:php@renyiwei.com,这样的话交流起来更及时一些。

发表评论

您必须 登录 后才能发表评论。