2016-11-14 1 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); 
} 
관련 문제