[英]Sails + passport + Basic Authentication
在護照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);
});
}
));
問題是此代碼應放在Sails應用程序的哪個文件中(哪個文件)? 我想同樣適用於自定義驗證功能嗎?
然后編寫代碼以使護照處理登錄過程
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);
這行passport.authenticate('local'
將從config.js內部的passport.js讀取配置,如下所示:-
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' }); }); });
將這些行添加到route.js中:- 'post /login': 'AuthController.login'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.