Hat jemand wirklich ASP.NET MVC 5 Identity Facebook Logins, um aus der Box zu arbeiten? (loginInfo gibt immer null zurück)

8

Unter Verwendung von Visual Studio 2013 Update 5 habe ich eine MVC 5-Anwendung mit der Option Individuelle Benutzerkonten auth ausgewählt, und ich habe versucht, soziale Logins mit dem Vorlagencode zu implementieren, war aber nicht erfolgreich.

Ich habe sichergestellt, dass alle NuGet-Pakete auf dem neuesten Stand sind und der Code MVC 5.2.3 verwendet; Owin 3.0.1; AspNet.Identity 2.0.0.

Ich kann alles in Ordnung bringen, einschließlich Authenticator-Apps mit OtpSharp, aber der Facebook-Login funktioniert einfach nicht, was immer ich versuche.

Ich habe die Facebook App erstellt, alle relevanten Optionen darauf gesetzt und die AppId und AppSecret in meiner Startup.Auth.cs Datei festgelegt.

Wenn ich versuche, mich mit Facebook anzumelden, leitet mich die MVC-Seite zu Facebook weiter, was mich mit dem Authentifizierungsbildschirm für die App auffordert. Ich klicke OK und akzeptiere das dann werde ich zurück zur MVC App weitergeleitet. Wenn ich die autorisierten Apps unter meinem Facebook-Konto überprüfe, wird meine App aufgelistet und zeigt an, dass sie der App die Berechtigung zum Abrufen der E-Mail-Adresse erteilt hat.

Der Callback funktioniert gut, aber wenn er ExternalLoginCallback erreicht und insbesondere:

%Vor%

loginInfo gibt immer null zurück.

Beim Betrachten der Anfrage wird ein Fehler von access_denied angezeigt:

%Vor%

Ich habe so ziemlich jeden Blogbeitrag und SO Fragen zu diesem Fehler gelesen und obwohl die meisten hilfreich sind, sind die meisten auch veraltet und nicht relevant.

Es scheint so, als ob etwas im Vorlagenprojekt fehlt oder sich etwas anderswo geändert hat, egal welches Tutorial ich gelesen habe und welche Optionen ich eingestellt habe, das Ergebnis ist dasselbe.

Ich habe dies intern auf einem Dev-Computer versucht, auf dem IIS Express läuft, und extern auf einem gehosteten Computer, auf dem auch IIS 7.5 läuft, und die Ergebnisse sind dieselben.

Ich habe sogar die Microsoft.Owin.Security.Facebook-Bibliothek dekompiliert, um zu sehen, wo dieser bestimmte Abschnitt des Querystrings auf keine Hilfe eingestellt ist.

Wenn ich Haare hätte, hätte ich es jetzt schon rausgezogen.

Ich nehme irgendwelche Vorschläge. Kann jemand helfen?

    
Ira Rainey 19.02.2016, 15:27
quelle

3 Antworten

2

Facebook liebt es, Dinge schwierig zu machen. Access_denied klingt, als ob sie dich absichtlich blockieren. Überprüfen Sie Ihr Entwickler-Dashboard und die Konten, die zum Testen Ihrer App im Entwicklungsmodus berechtigt sind. Die E-Mail-Berechtigung ist standardmäßig genehmigt, daher handelt es sich nicht um Ihr Problem.

Stellen Sie sicher, dass das Konto, mit dem Sie testen, hier hinzugefügt wird:

Wenn das Problem nicht gelöst wird, stellen Sie sicher, dass Sie die richtigen App-Domains (Testen und Live) im Bereich Domain hier aufgelistet haben:

    
Kyle Burkett 19.02.2016 15:51
quelle
2

Ich hatte genau das gleiche Problem. Egal was ich gemacht habe, das Facebook würde den Login zeigen, Berechtigungen bekommen und dann zurück zur Login Seite anstelle der Email Bestätigungsseite gehen.

Unter Verwendung von Fiddler würde Facebook " Ссылка SOME_SECRET_CODE_HERE " und dann den Controller meiner Anwendung aufrufen würde aufrufen " Ссылка ". Ich war mir sicher, dass Facebook den Zugriff verweigert. Erst nachdem ich ein Facebook Javascript SDK Sample implementiert hatte, erkannte ich, dass ich mich erfolgreich einloggen konnte und auch FB-Bereiche anzeigen konnte!

  

Meine Entwicklungsumgebung

     
  • MVC 5 Anwendung
  •   
  • Visual Studio 2013 Community Edition Update 5
  •   
  • Microsoft.OWIN v2.2.1
  •   
  • Microsoft.OWIN.Security.Facebook v3.0.1
  •   

Endlich habe ich ein YouTube Video von ProCoder gefunden, das erwähnt hat, um das richtige zu setzen Pfad in den Gültige OAuth-Weiterleitungs-URIs als Ссылка und es hat funktioniert. Wenn Sie nicht bereits hinzugefügt haben, müssen Sie das Facebook Login Produkt zu Ihrer Facebook-App hinzufügen.

Ich setze auch App Domain auf localhost und Site URL auf Ссылка

Ich habe 127.0.0.1 und MY.EXTERNAL.PUBLIC.IP zur Server-IP-Whitelist hinzugefügt. Unter Sicherheit strong> in der Erweiterte Einstellungen Option der Facebook App.

All diese Einstellungen habe ich in einer neuen MVC 5-Anwendung repliziert und es funktionierte wie ein Zauber.

    
athar13 07.08.2016 14:27
quelle
1

Aktualisieren Sie das Paket Owin.Security.Facebook 3.0.1 auf 3.1.0

Es funktioniert für mich

    
Asad Shakeel 08.07.2017 11:43
quelle

Tags und Links