Ich versuche, eine Webanwendung in Node.js
schreiben, die passport-facebook
Authentifizierung Strategie verwendet. Standardmäßig funktioniert der im Beispiel angegebene Mechanismus, indem der Benutzer auf Facebook API
umgeleitet wird, wo der Benutzer seinen Benutzernamen und sein Passwort eingeben kann. Sobald Facebook den Benutzer verifiziert hat, wird das Token an eine Rückruf-URL in meiner Anwendung zurückgegeben.So übergeben Sie zusätzliche Daten in Pass-facebook Authentifizierung
Jetzt funktionieren diese Dinge für meine Anwendung. Ich kann mich ohne Probleme mit Facebook einloggen. Aber ich möchte ein zusätzliches Feld an den Server übergeben, wenn ich versuche, mich anzumelden.
Grundsätzlich ist mein Plan, eine TextField
und eine Login Button
in meiner Homepage hinzuzufügen. Nach erfolgreicher Anmeldung, wenn die Callback-Funktion ausgeführt wird, möchte ich den Wert TextField
von diesem Rückruf erfassen. Gibt es eine Möglichkeit, das zu tun? Jede Hilfe wird sehr geschätzt.
Dies ist der Körper meiner HTML-Seite
<body>
<div class="container">
<div class="jumbotron text-center">
<p>Login or Register with:</p>
<a href="/auth/facebook" class="btn btn-primary"><span class="fa fa-facebook"></span> Facebook</a>
</div>
</div>
</body>
Und das ist mein nod.js
Code:
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('/auth/facebook/callback', passport.authenticate('facebook', {
successRedirect : '/dashboard',
failureRedirect : '/'
}));
app.get('/dashboard', isLoggedIn, function(req, res){
res.render('dashboard.ejs', {
user : {
name : req.user.facebook.name,
profilePic : req.user.facebook.profilePic
}
});
});
Grundsätzlich Ich möchte nur eine zusätzliches TextField
kurz vor meiner LogIn
Schaltfläche hinzufügen. Und von der Route /dashboard
möchte ich den Wert TextField
bekommen. Also mein Code für /dashboard
wird wie folgt aussehen:
app.get('/dashboard', isLoggedIn, function(req, res){
res.render('dashboard.ejs', {
user : {
role: VALUE_FROM_TEXT_FIELD,
name : req.user.facebook.name,
profilePic : req.user.facebook.profilePic
}
});
});
So habe ich eine doppelte Frage: 1. Wie diesen TextField
Wert vom Frontend zu übergeben. Sollte es in einem Form
oder was? 2. Wie kann ich den Wert der TextField
innerhalb der /dashboard
Route erfassen?
Können Sie ein Beispiel für Ihre Arbeit geben? Ich vermute, dass Sie in der Lage sein sollten, die Callback-URL zu verwenden, um diese – Pogrindis