所以我没有想法,我不知道要检查或调试什么,但除此之外我得到了这个:
string(188203) "Facebook\FacebookAuthorizationException Object
(
[statusCode:Facebook\FacebookRequestException:private] => 400
[rawResponse:Facebook\FacebookRequestException:private] => {"error":{"message":"Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request","type":"OAuthException","code":100,"fbtrace_id":"DqCCKoiN0r4"}}
[responseData:Facebook\FacebookRequestException:private] => Array
(
[error] => Array
(
[message] => Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
[type] => OAuthException
[code] => 100
[fbtrace_id] => DqCCKoiN0r4
)
)
[message:protected] => Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
[string:Exception:private] =>
[code:protected] => 100
答案 0 :(得分:5)
我相信您在Facebook应用设置和Oauth API代码中使用了不同的redirect_uri
。这就是为什么你得到这个错误。
对于facebook登录,您必须将相同的redirect_uri设置到这两个位置。
答案 1 :(得分:5)
听起来很荒谬,请确认您使用的是正确的app_secret。
Facebook会为您提供此功能,而不仅仅是在响应中说“无效的秘密”
答案 2 :(得分:1)
您可以在以下位置设置重定向URI 转到https://developers.facebook.com/apps 选择您的应用。
在产品下> Facebook登录>设置
您可以使用重定向URI验证程序来验证重定向URI。
您只能使用https URI。 还要在“设置”>“基本”>“应用程序域”中设置应用程序域
在重定向URI的末尾尝试/
在我的情况下,我在各处都使用https://localhost
,但是以某种方式获取指定https://localhost/
的访问令牌是可行的。
答案 3 :(得分:0)
这意味着您传递给FB的重定向URI(通常在查询字符串中)与您在app settings中设置的重定向不匹配。
答案 4 :(得分:0)
也可能是因为多个斜杠,例如:
https://yoursite.com/auth/facebook/callback -> that's the one you added in the app settings
https://yoursite.com//auth/facebook/callback -> that's what you actually send
答案 5 :(得分:0)
对我来说,它通过替换而起作用
callbackURL: "api/auth/facebook/redirect/",
到
callbackURL: "http://localhost:3000/api/auth/facebook/redirect/",
在new FacebookStrategy
答案 6 :(得分:0)
被同样的问题困扰了很久。
当重定向 url 不匹配或不存在或字段中的格式错误(附加空格或 // )时,无论是 Facebook 应用程序设置还是调用 API 时,您都会收到此错误。
解决方案
对我有用的是,当您添加重定向 URl 时,您可以在有效的重定向身份验证字段中检查它 uf 它在按下检查时不显示有效,而不是该 url 不正确
答案 7 :(得分:0)
确保与您的 FB 设置完全相同。
对我来说,我的设置中有 https://localhost:3000/ 但我的 get access token 调用中有 https://localhost:3000,这就是错误的根源!