No puede cambiar Twitter (ni a ningún otro proveedor de OAuth), todos ellos ofrecen solo una devolución de llamada a un dominio. Una solución fácil es redirigir todas las solicitudes de http://domain.com a http://www.domain.com, por lo que todos los visitantes terminan en www.domain.com antes de autenticarse. Usted debe ser capaz de hacer esto por su DNS o con un servidor del lado req.header redirección:
app.get('/*', function(req, res, next) {
if (req.headers.host.match(/^www/) !== null) {
res.redirect('http://' + req.headers.host.replace(/^www\./, '') + req.url);
} else {
next();
}
})
Copiado del this answer.
Cuando la autenticación con passport.js, tratar de especificar la URL de devolución de llamada:
passport.use(new TwitterStrategy({
consumerKey: auth_keys.twitter.consumerKey,
consumerSecret: auth_keys.twitter.consumerSecret,
callbackURL: auth_keys.twitter.callbackURL
},
function(token, tokenSecret, profile, done) {
process.nextTick(function() {
User.twitterAuth({ profile: profile }, function (err, user) {
return done(err, user);
});
});
}
));
Y asegúrese de que el callbackURL es exactamente el mismo que el configurado en Twitter. Si está ejecutando un nodo para desarrollo en localhost, intente con dos archivos de clave diferentes y cree otras aplicaciones de autenticación en Twitter con 127.0.0.1:3000 como dirección de devolución de llamada. Puede cambiar los archivos clave para dev y producción:
if (app.get('env') == 'development') {
auth_keys = require('./lib/keys_dev');
}
if (app.get('env') == 'production') {
auth_keys = require('./lib/keys_live');
}
Muestra un código, preferiblemente un caso de prueba mínimo. – ebohlman
No es un problema de código. Es el mecanismo de autenticación de twitters, que solo permite una devolución de llamada a un nombre de host, IIRC. No deberías necesitar ver ningún código. – EhevuTov
Incluso si se trata de un problema con el mecanismo de autenticación, algunos detalles más sobre el error interno del servidor, como una salida de consola, podrían proporcionar mejores respuestas. – Patrick