(обновлен код с функциями сериализации - по-прежнему перенаправляет на /failedRedirect)
Я пытаюсь получить простую аутентификацию по имени пользователя/паролю с помощью пакета паспорта, но безуспешно. В приведенном ниже примере я попытался проверить, что аутентификация работает, в основном всегда возвращая действительную аутентификацию (независимо от того, что будет пройдено), но по какой-то причине она не работает, и паспорт перенаправляет на неудачную ссылку входа.
Если бы кто-то мог помочь мне понять, как заставить этот пример просто аутентифицировать что-либо, я мог бы управлять оттуда.
Код в coffeescript:
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
Решено:Хорошо, я полагаю, что было несколько причин, по которым я не мог заставить его работать. Сериализующий материал может быть одним (Я не тестировал), но поскольку Джаред сказал, что они нужны, я оставляю их (он автор «Паспорта»). Другая путаница может быть связана с экспресс-версиями и моей путаницей с npm. Я считаю, что я протестировал оба последних v2 express, но я также протестировал v3, который я запускаю сейчас. Для третьей версии вам, вероятно, следует проверить модуль connect-flash
на Github, так как некоторые «вспышки», которые используются в примерах Джареда, были перемещены из express v3 (поэтому модуль помещает его обратно в ...). И, наконец, убедитесь, что вы публикуете сообщения, используя правильные именованные входные имена ( username
и password
по умолчанию).