HWIOAuthBundle, wie man Benutzer manuell mit einem Facebook Access Token authentifiziert?

8

Ich habe eine Website (Symfony2) mit HWIOauthBundle verwendet, um mit Facebook zu verbinden und alles funktioniert gut.

Jetzt versuche ich eine iOS App mit Cordova und Ionic Framework (AngularJS) zu bauen und ich möchte meinen Benutzer mit Facebook authentifizieren:

  1. Mit $cordovaFacebook authentifiziere ich meinen Benutzer und erhalte ein gültiges Facebook Access Token, das ist in Ordnung

  2. Ich versuche, dieses Zugriffs-Token zu verwenden, um meinen Benutzer auf der Serverseite mit HWIOauthBundle zu authentifizieren:

    %Vor%
  3. Symfony lehnt meine Anfrage mit diesem Protokoll ab:

    %Vor%

Meine Frage ist also: Wie kann ich meinen Benutzer sowohl auf der Vorderseite als auch auf der Rückseite mit Facebook connect authentifizieren?

Danke:)

    
Sylvain 27.04.2015, 14:16
quelle

2 Antworten

3

Ich habe mich auch gefragt, wie man eine serverseitige Anmeldung mit dem HWIOAuthBundle implementiert. Ich habe im Internet keine Lösung gefunden, daher habe ich die Funktion anhand von Hinweisen, die ich im Internet gelesen habe, programmiert. Grundsätzlich müssen Sie:

  1. Authentifizieren Sie den Benutzer in Ihrer App
  2. Machen Sie eine HTTP-Anfrage an Ihren Server mit dem Facebook-Token.
  3. Überprüfen Sie auf der Serverseite, ob das Token für Ihre Facebook-App ist und rufen Sie die Facebook-ID des Nutzers ab.
  4. Beziehen Sie Ihren Benutzer basierend auf der abgerufenen ID aus der Datenbank.

Hier ist mein Symfony-Controller:

%Vor%

Ich werfe die Symfony \ Component \ HttpKernel \ Exception \ AccessDeniedHttpException-Ausnahmen aus, um Anmeldefehler in meiner App zu behandeln.

Natürlich sollten Sie http s wirklich verwenden, da Sie sinnvolle Informationen austauschen.

Ich weiß nicht, ob es der beste Weg ist, aber es funktioniert gut. Hoffe es hilft!

    
tio oit 12.09.2015, 17:40
quelle
2

Nun, ich denke, dass Symfony Ihre Anfrage nicht wirklich ablehnt. Facebook ist. Ich bin mir nicht sicher, ob das helfen könnte, aber ich weiß, dass eine Menge Probleme beim Umgang mit der Facebook-Authentifizierung auftreten können:

  • Weißt du, ob das Tool zusammen mit dem Parameter code einen Parameter redirect_uri sendet? Wenn ja:

  • Haben Sie überprüft, ob Ihre redirect_uri am Ende einen abschließenden Schrägstrich hat? Siehe

  • Alberne Frage, aber haben Sie überprüft, ob Ihre app_id die gleiche ist, wenn Sie über Cordova autorisiert haben?

  • Überprüfen Sie, ob Ihre redirect_uri KEINE Abfrageparameter hat.

  • Überprüfen Sie, ob die redirect_uri , die Sie während des gesamten Prozesses verwenden, immer die gleiche ist.

Alles in allem scheint Ihr Problem fast immer mit dem URI-Format redirect_uri zu tun zu haben.

    
MeuhMeuh 28.07.2015 20:18
quelle