gpt4 book ai didi

javascript - NodeJS Passport 未知认证策略

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:02 25 4
gpt4 key购买 nike

我目前正在开发一个带有 Passport 身份验证的 Node.js 项目。但我收到以下错误消息:

错误:“未知的身份验证策略”

这是我的代码:

LocalStrategy = require('passport-local').Strategy;
var UserModel = require('../models/user');

module.exports = function(passport){
passport.serializeUser(function(user, done){
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user){
return done(err, user);
});
});

passport.use('local-signup', new LocalStrategy({
passReqToCallback: true
}, function(req, username, password, done){
process.nextTick(function(){
User.findOne({username: username}, function(err, user) {
if(err){
return done(err);
}

if(user){
return done(null, false, req.flash('signUpErr', 'The mail is taken'));
} else {
var newUser = new UserModel();
newUser.name = username;
newUser.password = newUser.generateHash(password);

newUser.save(function(err){
if(err){
throw err;
}
console.log('All Ok');
return done(null, newUser);
})
}
});
});
}));

}

路线:

//Post requests
app.post('/signup', passport.authenticate('local-signup', {
successRedirect: '/',
failureRedirect : '/signup'
}));

我的模型:

var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');

var UserSchema = new mongoose.Schema({
name: String,
password: String
});

UserSchema.method.generateHash = function(password){
return bcrypt.hash(password);
};
module.exports = mongoose.model('UserModel', UserSchema);

我真的需要你的帮助,谢谢!

最佳答案

检查您是否将策略与用户凭据一起传递

 var credentials = {
username:"username",
password:"password",
strategy:"local"

};
$http.post('auth/signin', credentials);

服务器端

function passportAuthenticate(req, res, next, strategy) {
passport.authenticate(strategy, function(err, user, info) {
if (err || !user) {
res.status(400).send(info);
} else {
next(req, res, user);
}
})(req, res, next);
}

关于javascript - NodeJS Passport 未知认证策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com