그래서 로컬 전략을 사용하여 인증 문제가 발생했습니다. 잘못된 자격 증명이나 실패한 것을 전달하면 적절한 오류가 발생합니다. 그러나 인증에 성공하면 404 오류가 표시됩니다.NodeJS, Passport & Passport-Local
저는 주위를 파고 들었고, 가장 좋은 아이디어는 세션 저장 공간을 떨어 뜨리는 것입니다 (사용자를 직렬화하는 동안 일어나는 것 같습니다). 누구나 이런 문제가 발생합니까?
다음은 코드의 일부입니다. 다른 코드 섹션이 필요한 경우 알려 주시면 기꺼이 제공해 드리겠습니다.
내 여권 구성 :
내 지역 전략 구성var passport = require('passport'),
User = require('mongoose').model('User');
module.exports = function() {
passport.serializeUser(function (user, done) {
done(null, user.id);
});
passport.deserializeUser(function (id, done) {
User.findOne({ _id: id }, '-password -salt -__v', function (err, user) {
done(err, user);
});
});
require('./strategies/local')();
};
:
다른 모든 방법이 작동var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
User = require('mongoose').model('User');
module.exports = function() {
passport.use(new LocalStrategy({
usernameField: 'email'
}, function (email, password, done) {
User.findOne({email: email}, function (err, user) {
if (err) {
return done(err);
}
if(!user || !user.active || !user.authenticate(password)) {
return done(null, false, { message: 'Authentication Failed'});
}
return done(null, user);
});
}));
};
, 나는 사용자를 찾기 위해 DB를 조회 할 수 있습니다, 내가 해시 된 암호와 일치를 강화했다 제공되는 암호로 모든 문제가 발생하고 LocalStrategy의 끝에 사용자가 생깁니다 (최종 done(null, user)
으로 만듭니다.) serializeUser()
done(null, user.id)
무언가가 발생합니다. t. 그러나 내가 결국 들어 오기까지하는 것은 상당히 모호 해 보인다. (또는 나는 그것을 이해하기에는 너무 멍청하다.) 그래서 실제로 일어나고있는 일을 말할 수 없다.
그것은 passport.authentic'에 대한 호출 같은 소리 ate()'가 제대로 구성되지 않을 수 있습니다. 어떻게 사용하고 있는지 보여줄 수 있습니까? 내가 거기에 특별한 아무것도 아니에요 – robertklep
: 'app.route ('/ 로그인') \t \t .post (passport.authenticate ('지방')); 내가 어떤 리디렉션을 수행 할 필요가 없습니다' 또는 무엇이든, 나는 프론트 엔드로 사용자 객체를 되돌려 줄 필요가있다. 우연히 만날 수있는 한가지, 최근에 노드 암호화'pbkdf2Sync' 기능이 다이제스트없이 호출하는 것에 대해 불평하기 시작 했으므로 이것을 추가했습니다. 이제는이 문제에 착수했습니다. - 그저 테스트 해보니 똑같은 것을 얻었습니다 ... –