2016-11-14 12 views
1

リダイレクトエラーが発生しているのですが、私はうまくいかないようです。 (ログインと登録の両方を)私のフォームを送信するには、私は304Passport-local 304リダイレクトエラーエクスプレスアプリ

ログイン

router.get('/login', function(req, res, next) { 
    res.render('login', { 
    user: req.user 
    }) 
}) 

テンプレート

extends layout 

block content 
    .container 
    h1 Login 
    br 
    form(method="post", action="/login", class="form") 
     .form-group 
     input.form-control(type='text', name='email', required='required') 
     .form-group 
     input.form-control(type='password', name='password', required='required') 
     button.btn.btn-default(type='submit') submit 
     a(href='/') 
     button.btn.btn-default(type='button') Go back 

パスポートコンフィグ私が間違っているつもりです

// Configure passport 
passport.use(new LocalStrategy({ 
    usernameField: 'email', 
    passwordField: 'password' 
    }, 
    function(username, password, done) { 
    UserSchema.authenticate() 
    } 
)); 

//passport.use(new LocalStrategy(UserSchema.authenticate())) 
passport.serializeUser(UserSchema.serializeUser()) 
passport.deserializeUser(UserSchema.deserializeUser()) 

を受けますか?

答えて

0

passport.use()関数のコールバック関数は、以下のように返す必要があると思います(これは私のプロジェクトの実装された実装から取ったものです)。関数に渡されたdone()コールバックは、認証に失敗した場合はdone(null, false)、認証が成功した場合はdone(null, user)のように呼び出されます(私はここで使用するためにユーザー変数を渡しています)。

function(username, password, done) { 
    //check if user is authenticated, in my case the user variable 
    if (err) { return done(err); } 
    if (!user) { return done(null, false); } 
    if (!user.authenticate(password)) { return done(null, false); } 
    if (!user.active) { return done(null, false); } 
    return done(null, user); 
} 
関連する問題