Quando si usa facebook-passaporto la solita cosa da fare è specificare l'redirect_uri
nel costruttore della THST FacebookStrategy si utilizza, qualcosa di simile:La callback per Facebook-pasport può essere costruita dinamicamente?
passport.use("facebook", new FacebookStrategy({
//TODO: Correctly configure me
clientID: "XXXXXXX"
, clientSecret: "XXXXXXXXX"
, callbackURL: "http://localhost:3007/auth/facebook/callback"
},
function(accessToken,refreshToken,profile,done) {
User.findByFacebookId(profile.id, function(err,user) {
if(err){ return done(err);}
if(!user){ return done(null,false)}
return done(null, user);
});
})
);
Poi si dovrebbe impostare percorsi come questo:
app.get('/auth/facebook/login', passport.authenticate('facebook'));
app.get('/auth/facebook/login_callback', passport.authenticate('facebook', {
successRedirect:"/login_ok.html"
, failureRedirect:"/login_failed.html"
}
))
È possibile modificare l'URL di richiamata in modo che contenga informazioni dai parametri passati alla chiamata di accesso iniziale?
NOTA: questa domanda è più utile per preservare le informazioni che mi hanno richiesto un po 'di tempo per risolvere il problema, per evitare che altre persone continuassero lungo gli stessi percorsi.
Grazie per aver postato questo, è stato un grande aiuto. Ho fatto lo stesso e ha funzionato. Una cosa che ho notato usando url di callback dinamici è che non è necessario impostare callbackURL quando si configura la nuova FacebookStrategy (...). –
grande funzionalità. non sono sicuro che tu possa farlo semplicemente per Twitter e Google, ma in caso contrario, c'è una buona soluzione [qui] (http://stackoverflow.com/questions/9885711/custom-returnurl-on-node-js -passaporti-google-strategy) per chiunque usi quei servizi oauth. –
posso usare una stringa di query come req.query.xxx in url invece di param? Ottiene sempre URI non valido – OMGPOP