2014-06-24 20 views
6

Tôi đang học nút và diễn đạt. Tôi đang cố gắng xây dựng một ứng dụng rất cơ bản để cho phép người dùng đăng nhập bằng cách sử dụng json. Sau đó, sẽ duy trì phiên cho đến khi họ đăng xuất. Với asp.net đây là một doddle bạn chỉ cần cài đặt nó trong cấu hình và gọi ...Confusion Session Passport.js

Auth.Login(username,pasword) 

Khi họ đăng xuất bạn chỉ cần làm:

Auth.logout() 

Và nếu bạn cần phải kiểm tra xem họ đã đăng nhập bạn chỉ cần làm:

Auth.IsLoggedIn() 

Hoặc mã cho hiệu ứng đó. Cũng có vẻ như hộ chiếu cho nút chỉ đơn giản là không đơn giản. Tôi đã dành cả đêm nhận làm việc này ...

app.post('/authentication/login', function handleLocalAuthentication(req, res, next) { 

    passport.authenticate('local', function(err, user, info) { 

     // Manually establish the session... 
     req.login({username:'[email protected]',password:'password'}, function(err) { 
      if (err) return next(err); 
      return res.json({ 
       message: 'user authenticated' 
      }); 
     }); 

    })(req, res, next); 
}); 

app.get('/authentication/isauthenticated',function(req,res){ 

    console.log(req.isAuthenticated()); 

}) 

passport.use(new LocalStrategy(
    function(username, password, done) { 

     return done(null, {username:'ss',password:'sffds'}); 
    } 
)); 

Vì vậy, bây giờ tôi không có cookie, không có phiên vẫn kiên trì khi tôi đăng nhập và sau đó nhấn url /authentication/isAuthenticated. Tôi thậm chí không thể có điểm dừng để dừng lại trong chiến lược ...

passport.use(new LocalStrategy(
    function(username, password, done) { 

     console.log('ggg'); 
     return done(null, {username:'ss',password:'sffds'}); 

    } 
)); 

Tôi đang xem giải pháp sai cho điều này? Tôi có nên lăn auth của riêng mình hoặc một cái gì đó với một chức năng cơ bản middleware?

Trả lời

3

Khám phá this tutorial. Nó thực sự tuyệt vời và nó đã giúp tôi rất nhiều.

Và đây là repo của tôi đã thực hiện xác thực hộ chiếu với người dùng được lưu trữ trong mongodb thông qua mongoose và mật khẩu băm. Clone nó hoặc chỉ cần kiểm tra xem nó ra, nó sẽ giúp đỡ. https://github.com/thyforhtian/auth_base.

+0

Cảm ơn điều này thực sự đã giúp tôi. – Exitos

+0

Tôi rất vui vì điều đó. Cảm ơn – thyforhtian

+0

@thyforhtian liên kết đến "hướng dẫn này" dường như bị hỏng – peralmq