Tôi đang làm việc trên một trang web blog đơn giản dựa trên angular.js + node.js
và mongodb
sử dụng mẫu nhanh. Tôi nhấn với $http
từ bộ điều khiển góc theo phương thức POST thành api có tên users.js
trong đó thông tin đăng nhập được xác thực bằng phương thức passport.authenticate
. Tôi yêu cầu các chiến lược đăng nhập hộ chiếu địa phương ở users.js
.
Nhưng nó không hoạt động. Có mã dịch vụ đăng nhập góc và mã api của người dùng nút. Ai có thể cho tôi biết làm thế nào có thể sử dụng passport.js
trong góc và nút?cách sử dụng hộ chiếu với ứng dụng nút góc cạnh?
định tuyến góc thông qua một dịch vụ
app.service('Auth',function($location,$http,$localStorage){
var userLogin ;
return{
setLogIN:function(email,password){
$http({
method: 'POST',
url: '/users/login', //users.js having node routing.
data: {email:email, password:password},
})
nút định tuyến trong sử dụng
router.post('/login',passport.authenticate('local', {
// use passport-local for authentication
successRedirect : '/profile',
failureRedirect : '/login',
failureFlash : true
}));
hộ chiếu cục bộ chiến lược
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(
function (username, password, done) {
User.findOne({username: username}, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {alert: 'Incorrect username.'});
}
if (user.password != password) {
return done(null, false, {alert: 'Incorrect password.'});
}
return done(null, user);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
function isAuthenticated(req,res,next){
if(req.isAuthenticated())return next();
res.redirect('/');
}
Vì vậy, tôi muốn xác thực bằng hộ chiếu, nhưng sử dụng phía khách hàng templating/định tuyến để giữ xác thực thích hợp.
Ai đó có thể vui lòng chỉ cho tôi đúng hướng không? Hoặc cho tôi biết nếu những gì tôi đang làm là hoàn toàn sai lầm?
chỉnh sửa: lỗi TÔI nhận với mã của tôi là nó không chuyển hướng đến trang tiểu
TypeError: POST http://localhost:3000/users/login 500 Internal Server Error
Not a valid User
bài viết mã của chiến lược xác thực của bạn cũng. – ayushgp