好吧,我已尽力解决这个问题,但是,它仍然太烦人了。
我决定将OAuth用于服务器端身份验证。所以,我已经关注了Facebook文档,我已经完成了以下步骤。
https://www.facebook.com/dialog/oauth?client_id={APP_ID}&redirect_uri=http://abc.com/nextStep.php
https://graph.facebook.com/oauth/access_token?code={CODE GENERATED BY FACEBOOK}&client_id={APP_ID}&redirect_uri=http://abc.com/thirdStep.php&client_secret={APP_SECRET}
进行第2步时存在问题。页面显示:
{
"error": {
"message": "Error validating verification code.",
"type": "OAuthException",
"code": 100
}
}
我用google搜索了很多时间。有些人建议在redirect_uri中添加一个尾部斜杠,但它不起作用。我该怎么办?如何在获取access_token后获取用户信息?谢谢你的帮助。
答案 0 :(得分:2)
两件事:
首先,我要说你错过了第一个网址中的state
参数...你必须编写一个文档描述为SOME_ARBITRARY_BUT_UNIQUE_STRING的值 - 一些唯一的id / hash / what,没有人从外面就可以猜到。 (是的,该参数是可选 - 但是你应该仍然使用它,因为正如文档所说它有助于防止CSRF,因此是重要的如果您不知道CSRF的含义,请查阅。)
其次,在您的第二步中,您应该不 将用户的客户端重定向到该地址,但是要进行服务器端调用相反,该端点。你将你的应用秘密放入这个URL(这不是错误,你必须) - 所以如果你在他的浏览器中调用该URL,用户很容易得到它...!
我建议你再次从https://developers.facebook.com/docs/authentication/server-side/开始,从顶部仔细阅读 - 如果你真的按照那里给出的指示,你几乎不会出错......