2016-04-22 8 views
0

Ich habe ein Problem mit FB Login in meiner Yii-Anwendung. Wenn ich versuche, die Benutzerattribute abzurufen, gibt die Anwendung einen internen Serverfehler zurück. Ich habe alle Logs überprüft und nichts gefunden.Yii2 AutClient Facebook

Dies ist meine Config

'authClientCollection' => [ 
     'class' => 'yii\authclient\Collection', 
     'clients' => [ 
      'facebook' => [ 
       'class' => 'yii\authclient\clients\Facebook', 
       'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup', 
       'clientId' => 'xxxxxxxx', 
       'clientSecret' => 'xxxxxxxxx', 
      ], 
     ], 
    ], 

Controller-Aktionen

public function actions() 
{ 
    return 
    [ 
     'auth' => 
     [ 
      'class' => 'yii\authclient\AuthAction', 
      'successCallback' => [$this, 'authSuccess'], 
     ], 
    ]; 
} 

und die App stürzt ab, wenn es diese Anweisung innerhalb des

Rückruf erreicht
$attributes = $client->getUserAttributes(); 

dies ist das $ client Objekt

object(yii\authclient\clients\Facebook)#115 (20) { 
    ["authUrl"]=> 
    string(51) "https://www.facebook.com/dialog/oauth?display=popup" 
    ["tokenUrl"]=> 
    string(45) "https://graph.facebook.com/oauth/access_token" 
    ["apiBaseUrl"]=> 
    string(26) "https://graph.facebook.com" 
    ["scope"]=> 
    string(5) "email" 
    ["attributeNames"]=> 
    array(2) { 
    [0]=> 
    string(4) "name" 
    [1]=> 
    string(5) "email" 
    } 
    ["version"]=> 
    string(3) "2.0" 
    ["clientId"]=> 
    string(15) "xxxxxxxxxx" 
    ["clientSecret"]=> 
    string(32) "xxxxxxxxxx" 
    ["_returnUrl":"yii\authclient\BaseOAuth":private]=> 
    string(49) "http://xxxxxx.xx/auth?authclient=facebook" 
    ["_curlOptions":"yii\authclient\BaseOAuth":private]=> 
    array(0) { 
    } 
    ["_accessToken":"yii\authclient\BaseOAuth":private]=> 
    object(yii\authclient\OAuthToken)#117 (5) { 
    ["tokenParamKey"]=> 
    string(12) "access_token" 
    ["tokenSecretParamKey"]=> 
    string(18) "oauth_token_secret" 
    ["createTimestamp"]=> 
    int(1461360063) 
    ["_expireDurationParamKey":"yii\authclient\OAuthToken":private]=> 
    NULL 
    ["_params":"yii\authclient\OAuthToken":private]=> 
    array(2) { 
     ["access_token"]=> 
     string(175) "EAACZCvJlBssYBAF1vwxq7PMgKAsEz5GueWEpBTf3OZAGEHPrONRKVXLGggRudgsNcpHiWD2IWDlEwnVmku9qmyYvUWh2VYVPShOK6VfsQ7TID1dEozVUMgYU01raFK3IBJ2mvi5PNztnqgQ12d0yBZBYnZCVloft4FmkkYyjvwZDZD" 
     ["expires"]=> 
     string(7) "5181417" 
    } 
    } 
    ["_signatureMethod":"yii\authclient\BaseOAuth":private]=> 
    array(0) { 
    } 
    ["_id":"yii\authclient\BaseClient":private]=> 
    string(8) "facebook" 
    ["_name":"yii\authclient\BaseClient":private]=> 
    NULL 
    ["_title":"yii\authclient\BaseClient":private]=> 
    NULL 
    ["_userAttributes":"yii\authclient\BaseClient":private]=> 
    NULL 
    ["_normalizeUserAttributeMap":"yii\authclient\BaseClient":private]=> 
    NULL 
    ["_viewOptions":"yii\authclient\BaseClient":private]=> 
    NULL 
    ["_events":"yii\base\Component":private]=> 
    array(0) { 
    } 
    ["_behaviors":"yii\base\Component":private]=> 
    NULL 
} 

EDIT: Ich habe gerade herausgefunden, dass es ein Problem mit Yi's AuthClient (vielleicht FB Antwort geändert?), Weil ich das in einem anderen Projekt, vor etwa einem Jahr, und es funktioniert gut. Jetzt habe ich versucht, zu diesem Projekt anmelden und es macht das Gleiche

Antwort

0

sorry, ich habe Qualifikation nicht für einen Kommentar ... schreiben Sie Ihre Funktion Inhalt

function authSuccess($client) { 
... 
} 

Extra: Ihr Benutzermodell überprüfen hat implementiert IdentityInterface und yii \ web \ User es ist Benutzerattribut bei Login-Funktion gesetzt. können Sie dort einen Haltepunkt setzen.

+0

ist es egal, auch wenn ich nur eine Zeile in Funktion habe $ client-> getUserAttributes(); es stürzt nur beim Versuch, die Attribute zu bekommen – 94mp205

+0

meine Benutzerklasse implementiert IdentityInterface und funktioniert gut, jedenfalls hat es nichts mit AuthClient zu tun, weil app stürzt beim Versuch, Attribute von Facebook Antwort, nicht von meinem Benutzer – 94mp205

+0

nginx Fehler und yii2 runtime/logs/app.log hat keine Informationen? –