[英]Sails + passport + Basic Authentication
in passport js, basic strategy, the following code sample provides a function for verifying the identity of a user. 在护照js(基本策略)中,以下代码示例提供了用于验证用户身份的功能。
passport.use(new BasicStrategy(
function(userid, password, done) {
User.findOne({ username: userid }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
Question is where (which file) in a Sails application should this code be placed? 问题是此代码应放在Sails应用程序的哪个文件中(哪个文件)? I suppose same applies for a custom verification function? 我想同样适用于自定义验证功能吗?
then write code to make passport handle login process 然后编写代码以使护照处理登录过程
login: function(req, res) { passport.authenticate('local', function(err, user, info) { if ((err) || (!user)) { return res.send({ message: info.message, user: user }); } req.logIn(user, function(err) { if (err) res.send(err); return res.send({ message: info.message, user: user }); }); })(req, res);
this line passport.authenticate('local'
will read configuration from passport.js inside config.js which will be like this :- 这行passport.authenticate('local'
将从config.js内部的passport.js读取配置,如下所示:-
passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'password' }, function(email, password, done) { Passport.use(new LocalStrategy({usernameField:'email',passwordField:'password'},function(email,password,done){
User.findOne({ email: email }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect email.' }); } bcrypt.compare(password, user.password, function (err, res) { if (!res) return done(null, false, { message: 'Invalid Password' }); var returnUser = { email: user.email, createdAt: user.createdAt, id: user.id }; return done(null, returnUser, { message: 'Logged In Successfully' }); }); });
add these line into route.js :- 'post /login': 'AuthController.login'
将这些行添加到route.js中:- 'post /login': 'AuthController.login'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.