通过POST而不是GET进行Google登录回调

时间:2012-12-05 13:28:00

标签: socialauth

我目前正在使用一个库( SocialAuth.NET - http://code.google.com/p/socialauth-net/)来处理多个社交平台上的登录。

到目前为止,通过Facebook和Twitter,我没有任何问题。但是,在尝试实施Google登录流程时,有时(显然是随机的)会发生错误。

在做了一些调查(调试库和使用Fiddler等等)之后,我得出的结论是,有时候google部分的登录过程会通过 POST 返回到我的身份验证处理程序,而不是通过 GET 。 使用Fiddler,我能够清楚地识别消息体内的所有参数(如果是 POST 回调)或查询字符串(如果是 GET 回调),那么谷歌正确记录了我的用户。

这会导致SocialAuth.NET库方法出现异常,因为它希望所有参数都以querystring传递,因此登录过程失败(显然我认为 - 谷歌认为我登录了以后一切顺利)

总之,我要问的是:为什么google有时会通过 POST 代替 GET 来回答我的服务器?我应该做些什么来避免这种情况,或者需要在 SocialAuth.NET 库中进行更改?

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有遇到过Google这个问题。它始终以querystring返回信息。如果您能以某种方式确定复制的确切步骤,那就太好了无论如何,如果你想修改库以检查POST,那么你需要改变Core / callbackHandler.cs的ProcessRequest方法(可能是第76行)。