在登录对话授权后,由于重定向中缺少“state”参数,CSRF检查失败

时间:2013-02-11 23:50:55

标签: facebook oauth-2.0 facebook-oauth

我使用Facebook login dialogue登录我的网站(使用PHP SDK),但是新用户第一次授权应用并且第二次尝试成功时总是失败

我发现在用户授权我的应用后,state参数没有在重定向网址中传回给我,导致我的应用中的CSRF检查失败(在SDK中的getCode()。对于它的价值,包括code参数。

但是,如果他们第二次关注对话链接,则按预期工作 - 无需进一步授权点击,并且重定向网址正确,同时包含statecode个参数。< / p>

所以我的问题是:

如何在授权后找出重定向导致state丢失的原因?

作为参考,我的对话链接如下所示:

https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.mysite.com%2Fconnect&state=4f246904818d682a742c59cbbced829c&scope=email%2Cuser_likes

1 个答案:

答案 0 :(得分:0)

正如Igy所说,这是Facebook方面的一个错误,现在修复:https://developers.facebook.com/bugs/587975411230466