(código actualizado con funciones de serialización - todavía redirige a/failedRedirect)Node.js autenticación del usuario mediante el pasaporte
estoy tratando de conseguir autenticación simple nombre de usuario/contraseña va utilizando el paquete de pasaporte, pero no. En el siguiente ejemplo, he intentado verificar que la autenticación funciona, básicamente siempre devolviendo una autenticación válida (independientemente de lo que se aprueba), pero por alguna razón falla y el pasaporte redirige al enlace de inicio de sesión fallido.
Si alguien me puede ayudar a descubrir cómo hacer que este ejemplo simplemente autentique algo, debería ser capaz de gestionar desde allí.
El código en CoffeeScript es:
express = require "express"
passport = require "passport"
LocalStrategy = require("passport-local").Strategy
passport.use(new LocalStrategy((username, password, done) ->
console.log "LocalStrategy invoked"
done(null, {id: 1, name: "Marius"})
))
passport.serializeUser (user, done) ->
done null, user
passport.deserializeUser (obj, done) ->
done null, obj
app = express.createServer()
app.configure ->
app.use express.bodyParser()
app.use express.static("./public")
app.use express.cookieParser("SOMESECRET")
app.use express.session
secret: "SOMESECRET"
cookie:
maxAge: 60000
app.use passport.initialize()
app.use passport.session()
app.set "view", "./srv/views"
app.set "view engine", "jade"
app.get "/login", (req, res) ->
res.send "login page"
app.post "/login", passport.authenticate("local",
failureRedirect: "/failedRedirect"
successRedirect: "/successRedirect"
failureFlash: true)
app.listen 8082
Resuelto: Ok, creo que había algunas razones por las que no pude conseguir que funcione. El material serializado puede ser uno (no lo he probado), pero como Jared dijo que eran necesarios, los dejo (es el autor de Passport). La otra confusión puede estar relacionada con versiones expresas y mi confusión con npm. Creo que probé la última v2 de Express, pero también probé v3, que ahora estoy ejecutando. Para la versión tres, probablemente también deberías consultar el módulo connect-flash
en Github, ya que algunas de las cosas "flash" que se usan en los ejemplos de Jared se quitaron de v3 (así que el módulo lo vuelve a poner ...). Y, por último, asegúrese de publicar utilizando los nombres de entrada con el nombre adecuado (username
y password
de forma predeterminada).
Código actualizado en cuestión para incluir el funciones de serialización, pero la autenticación aún falla en mi extremo. ¿Se autentica el código actualizado con éxito al final? Gracias .. –
Sí, lo hace. ¿Su código imprime el mensaje "LocalStrategy invocado"? Puede ser útil montar 'app.use (express.errorHandler ({dumpExceptions: true, showStack: true}));' y ver si se producen excepciones. –
En mi extremo, incluso el mensaje "invocado" no se muestra. Voy a probar tu error con el gestor para ver si aparece algo. –