Tôi có dự án Sails.js mới sử dụng Passport.js để xác thực người dùng. Tôi có xác thực cơ bản hoạt động (nghĩa là người dùng có thể đăng ký và đăng nhập thành công), nhưng muốn hiển thị thông báo lỗi thích hợp trong chế độ xem đăng nhập nếu họ không nhập thông tin đăng nhập chính xác. Tôi không thể tìm ra cách in bất kỳ thông báo lỗi nào trong chế độ xem.Hiển thị thông báo lỗi xác thực passport.js trong giao diện
Đây là thiết lập của tôi. Tôi có config/passport.js
, trong đó có những điều sau đây:
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
bcrypt = require('bcrypt');
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findOne({ id: id } , function (err, user) {
done(err, user);
});
});
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback : true
},
function(req, email, password, done) {
User.findOne({ email: email }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Please enter a valid email address.' });
}
if (!req.body.username) {
return done(null, false, { message: 'Please enter your username.' });
}
bcrypt.compare(password, user.password, function (err, res) {
if (!res) {
return done(null, false, {
message: 'Invalid Password'
});
}
var returnUser = {
username: user.username,
email: user.email,
createdAt: user.createdAt,
id: user.id
};
return done(null, returnUser, {
message: 'Logged In Successfully'
});
});
});
}
));
Sau đó, tôi có api/controllers/AuthController.js
, trong đó có những điều sau đây:
var passport = require('passport');
module.exports = {
_config: {
actions: false,
shortcuts: false,
rest: false
},
login: passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login',
failureFlash: true
}),
logout: function(req, res) {
req.logout();
res.redirect('/login');
}
};
lần nữa, đây là hoạt động bình thường nếu người dùng điền vào thông tin chính xác của họ. Tôi đang sử dụng tay lái làm công cụ khuôn mẫu của tôi, và muốn để hiển thị các thông báo lỗi trong giao diện đăng nhập như sau:
<div class="alert">{{ message }}</div>
Cho đến nay tôi đã cố gắng {{ failureMessage }}
{{ message }}
{{ req.flash.failureMessage }}
{{ req.flash.err }}
{{ req.flash.message }}
vô ích. Vì vậy, tất cả điều này để nói, làm cách nào để hiển thị thông báo lỗi thích hợp trong chế độ xem của tôi? Và tốt hơn, làm thế nào tôi sẽ làm nổi bật lĩnh vực errant trong quan điểm của tôi?