我试图通过Facebook上我的网站正在使用Yii2框架构建,以激活登录,但登录时总是失败,尽管Facebook的应用程序被授权在使用Facebook帐户登录。Yii2 Facebook的登录问题:错误验证客户端密钥
的反应总是这样一个错误:
Request failed with code: 400, message: Error validating client secret.
进出口使用yii2的authclient:
return [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'authUrl' => 'facebook.com/dialog/oauth',
//Prod
'clientId' => 'appidhere',
'clientSecret' => 'appsecrethere',
'scope' => 'email, user_friends, public_profile',
.....
应用程序ID和应用机密是正确的,而FB应用程序设置是否正确,以及。
这里的要求是什么样子:
yii\httpclient\Request Object ([_url:yii\httpclient\Request:private] => graph.facebook.com/oauth/access_token [_fullUrl:yii\httpclient\Request:private] => [_method:yii\httpclient\Request:private] => POST [_options:yii\httpclient\Request:private] => Array ([userAgent] => My Application OAuth 2.0 Client [timeout] => 30 [sslVerifyPeer] =>) [isPrepared:yii\httpclient\Request:private] => [client] => yii\httpclient\Client Object ([baseUrl] => graph.facebook.com [formatters] => Array () [parsers] => Array () [requestConfig] => Array () [responseConfig] => Array () [contentLoggingMaxSize] => 2000 [_transport:yii\httpclient\Client:private] => yii\httpclient\StreamTransport [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] =>) [_headers:yii\httpclient\Message:private] => [_cookies:yii\httpclient\Message:private] => [_content:yii\httpclient\Message:private] => [_data:yii\httpclient\Message:private] => Array ([client_id] => realappidhere [client_secret] => realappsecrethere [code] => AQAr0KRC0m4V4lqD8LVcQLNjn76xkZS4skQYAvWf6O_DDeEclaj1LMQm_HoyCoZZezqDn7p9YfJm3qENabU8MKvmH1ffNJotMzgLW2XTbSqQEXlkg_sx7V-ibXRFagpfXTIqCp9Kr54O88bNYGikoOr4TM1ogGjViwS-qKLbvpR_vWgE_FPy9ecpgy86QOITpGrlVJaPAun2bzGaFXmU70Z4Kw3kBWUBPseWc_7ILGymZP-CIbRIIm_YZ8p7t9Vo7jZmieMSd-CMYfG0sgJcBjOgQNvsa3xtHNhPVa5BJNNTy89zulSpTAf3XB6HB_8eql0 [grant_type] => authorization_code [redirect_uri] => example.com/site/auth?role=influencer&authclient=facebook) [_format:yii\httpclient\Message:private] => [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] =>)
和响应是:
yii\httpclient\Response Object ([client] => yii\httpclient\Client Object ([baseUrl] => graph.facebook.com [formatters] => Array ([urlencoded] => yii\httpclient\UrlEncodedFormatter Object ( [encodingType] => 1 [charset] =>)) [parsers] => Array () [requestConfig] => Array () [responseConfig] => Array () [contentLoggingMaxSize] => 2000 [_transport:yii\httpclient\Client:private] => yii\httpclient\StreamTransport Object ( [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] =>) [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [_headers:yii\httpclient\Message:private] => Array ([0] =>HTTP/1.1 400 Bad Request [1] => WWW-Authenticate: OAuth "Facebook Platform" "invalid_request" "Error validating client secret." [2] => Access-Control-Allow-Origin: * [3] => Pragma: no-cache [4] => Cache-Control: no-store [5] => facebook-api-version: v2.2 [6] => Expires: Sat, 01 Jan 2000 00:00:00 GMT [7] => Content-Type: text/javascript; charset=UTF-8 [8] => x-fb-trace-id: Ek0PFIJ3B3N [9] => x-fb-rev: 2718923 [10] => Vary: Accept-Encoding [11] => X-FB-Debug: yaiIHJkwC4T3UZKrzXOJGJ2DmCTaDr8nIRB3jQnNeEiknx0Ph7i2IR5XmAbxpjM7cBhSEy44AcrglCYEdZEmeg== [12] => Date: Sun, 04 Dec 2016 11:08:16 GMT [13] => Connection: close [14] => Content-Length: 115) [_cookies:yii\httpclient\Message:private] => [_content:yii\httpclient\Message:private] => > {"error":{"message":"Error validating client secret.","type":"OAuthException","code":1,"fbtrace_id":"Ek0PFIJ3B3N"}} [_data:yii\httpclient\Message:private] => [_format:yii\httpclient\Message:private] => [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] =>)
所以任何想法正在发生的事情吗?
注:我删除从报价facebook的链接http和https,因为计算器不会让我上传超过2个链接。
yii2-authclient的哪个版本有什么? – Bizley
“yiisoft/yii2-authclient”:“〜2.1.0” – Emma
我找不到一个比由错误信息提示任何其他解决方案 - 的clientId和clientSecret的组合必须是错误的,这个特定的应用。请仔细检查。 – Bizley