Sto utilizzando passport-twitter per configurare una connessione twitter sul mio sito. Gli utenti possono connettersi facendo clic su "accesso" o su "aggiungi nuovo elemento". L'unica differenza tra i due è che se si fa clic su Aggiungi nuovo elemento, una finestra modale dovrebbe aprire una volta theyre registrato nelPassport-Twitter - Errore: impossibile trovare il token di richiesta nella sessione
Per conoscere sul pulsante fanno clic, devo conservare l'URL nella req.session.referrer
:.
// route for twitter authentication and login
app.get('/auth/twitter', function(req, res, next){
req.session.referrer = req.url;
console.log(req.session);
passport.authenticate('twitter')(req, res, next);
});
app.get('/auth/twitter/new', function(req, res, next){
req.session.referrer = req.url;
console.log(req.session);
passport.authenticate('twitter')(req, res, next);
});
// handle the callback after twitter has authenticated the user
app.get('/auth/twitter/callback', function(req, res, next){
var options = {
successRedirect : '/twitter-user/signin',
failureRedirect : '/'
};
console.log(req.session);
if (req.session.referrer && req.session.referrer.indexOf('new') > -1) options.successRedirect = '/twitter-user/new';
passport.authenticate('twitter', options)(req, res, next)
});
Tutto funziona bene nel mio ambiente di sviluppo, ma una volta in linea ottengo questo messaggio di errore: espresso
500 Error: Failed to find request token in session
at Strategy.OAuthStrategy.authenticate (/app/node_modules/passport-twitter/node_modules/passport-oauth1/lib/strategy.js:142:54)
...
mie impostazioni sono impostate correttamente twitter. Ecco quello che ottengo con i ceppi: Per la richiesta:
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true },
passport: {},
referrer: '/auth/twitter' }
Per la richiamata:
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true },
passport: {} }
forse potrebbe essere dovuto al problema sottodominio (http://example.com vs http://www.example.com) come non lo faccio avere il pb localmente. Come posso risolvere questo?
Molte grazie
EDIT: La mia chiave API è impostato in questo modo (come per questo tutorial: http://scotch.io/tutorials/javascript/easy-node-authentication-twitter):
passport.use(new TwitterStrategy({
consumerKey : configAuth.twitterAuth.consumerKey,
consumerSecret : configAuth.twitterAuth.consumerSecret,
callbackURL : configAuth.twitterAuth.callbackURL
},function(token, tokenSecret, profile, done) {
...
});
dove hai impostato la chiave di accesso a twitter twitter? – Biba
Ho modificato la mia domanda con le informazioni. Si prega di vedere sopra – Spearfisher