Wie benutze ich Passport-Facebook Login ohne Umleitung?

9

Ich baue eine Phonegap-Anwendung, die nodejs auf der Serverseite haben wird. Ich wollte den Login mit der Pass-Facebook-Strategie implementieren, aber ihre Callbacks geben zwei Routen an, / Successcallback und / failurecallback. Wenn Sie eine einzelne Seitenanwendung verwenden, ist es sehr verwirrend, dass Benutzer auf diese und andere Seite umgeleitet werden.

Ich möchte keine statischen Dateien (index.html, login.html) vom Server bereitstellen, sondern sie auf dem Client haben und den Client auffordern, AJAX-Aufrufe durchzuführen. Bis jetzt bin ich in der Lage, / auth / facebook als AJAX-Anfrage aufzurufen, kann aber auf dieselbe Anfrage keine Antwort erhalten, da die Login-Strategie eine Umleitung des Benutzers erfordert. Ich möchte lieber eine user_id oder einen Namen zurück an den Benutzer bei erfolgreicher Anmeldung senden oder zeigen Sie ihm das Login-Formular (das ist auch im www Verzeichnis in phonegap) bei einem Fehler. Aber die Umleitung und CORS-Fehler hindern mich daran. Kann ich das irgendwie umsetzen? Ich habe seit ein paar Wochen danach gesucht, aber keinen Erfolg. Ich würde deine Hilfe sehr schätzen!

PS: Ich würde es eher vermeiden, den gesamten HTML- und statischen Inhalt vom Knotenserver zu senden.

EDIT: Hinzufügen von Login-Code zum besseren Verständnis:

%Vor%     
user3331247 06.07.2014, 12:30
quelle

2 Antworten

0

Anstatt die Standardweiterleitungen des Passes zu verwenden, können Sie eine eigene Funktion definieren, die anstelle der Weiterleitung ausgeführt wird. Hier ist ein Beispiel dafür, wie dieser Code aussehen würde

%Vor%     
Raphaël Michel 12.12.2016 08:30
quelle
0
___ tag123ajax ___ AJAX (Asynchrones JavaScript und XML) ist eine Technik zum Erstellen nahtloser interaktiver Websites über den asynchronen Datenaustausch zwischen Client und Server. AJAX erleichtert die Kommunikation mit dem Server oder partielle Seitenaktualisierungen ohne eine herkömmliche Seitenaktualisierung. ___ qstnhdr ___ Wie benutze ich Passport-Facebook Login ohne Umleitung? ___ tag123nodejs ___ Node.js ist ein ereignisbasiertes, nicht blockierendes asynchrones I / O-Framework, das die Google V8-JavaScript-Engine und die libuv-Bibliothek verwendet. Es wird für die Entwicklung von Anwendungen verwendet, die die Fähigkeit zum Ausführen von JavaScript sowohl auf dem Client als auch auf der Serverseite stark ausnutzen und daher von der Wiederverwendbarkeit von Code und dem Mangel an Kontextwechsel profitieren. ___ tag123cordova ___ Apache Cordova (früher PhoneGap) ist ein Framework, mit dem Entwickler plattformübergreifende mobile Anwendungen mithilfe von Webtechnologien wie HTML, JavaScript und CSS erstellen können. ___ tag123passportjs ___ Passport.js ist eine Authentifizierungs-Middleware für Node.js. Extrem flexibel und modular kann Passport unauffällig in jede Express-basierte Web-Anwendung eingefügt werden. Eine umfassende Reihe von Strategien unterstützt die Authentifizierung mit einem Benutzernamen und einem Passwort, Facebook, Twitter und mehr. ___ qstntxt ___

Ich baue eine Phonegap-Anwendung, die nodejs auf der Serverseite haben wird. Ich wollte den Login mit der Pass-Facebook-Strategie implementieren, aber ihre Callbacks geben zwei Routen an, / Successcallback und / failurecallback. Wenn Sie eine einzelne Seitenanwendung verwenden, ist es sehr verwirrend, dass Benutzer auf diese und andere Seite umgeleitet werden.

Ich möchte keine statischen Dateien (index.html, login.html) vom Server bereitstellen, sondern sie auf dem Client haben und den Client auffordern, AJAX-Aufrufe durchzuführen. Bis jetzt bin ich in der Lage, / auth / facebook als AJAX-Anfrage aufzurufen, kann aber auf dieselbe Anfrage keine Antwort erhalten, da die Login-Strategie eine Umleitung des Benutzers erfordert. Ich möchte lieber eine user_id oder einen Namen zurück an den Benutzer bei erfolgreicher Anmeldung senden oder zeigen Sie ihm das Login-Formular (das ist auch im www Verzeichnis in phonegap) bei einem Fehler. Aber die Umleitung und CORS-Fehler hindern mich daran. Kann ich das irgendwie umsetzen? Ich habe seit ein paar Wochen danach gesucht, aber keinen Erfolg. Ich würde deine Hilfe sehr schätzen!

PS: Ich würde es eher vermeiden, den gesamten HTML- und statischen Inhalt vom Knotenserver zu senden.

EDIT: Hinzufügen von Login-Code zum besseren Verständnis:

%Vor%     
___ tag123urlredirection ___ URL-Umleitung bezieht sich auf das Springen einer Web-Anfrage auf eine andere URL ___ antwort43880368 ___

Sie können das nicht mit Facebook oAuth, aber Facebook bietet eine andere Login-Lösung , wo Sie können Codiere deine Client-App, um ein Token anzufordern, das du später mit Pass-facebook-token .

Auf diese Weise können Sie die Vorteile des Passes für persistente Sitzungen nutzen, ohne diese lästige Umleitung.

    
___ answer41096813 ___

Anstatt die Standardweiterleitungen des Passes zu verwenden, können Sie eine eigene Funktion definieren, die anstelle der Weiterleitung ausgeführt wird. Hier ist ein Beispiel dafür, wie dieser Code aussehen würde

%Vor%     
___
Mr. Goferito 09.05.2017 21:45
quelle