2014-06-24 66 views
6

我正在學習節點和表達。我正在嘗試構建一個非常基本的應用程序,它只是讓用戶使用json進行登錄。然後將保持會話,直到他們註銷。隨着asp.net這是一個抄你設置好它在配置和調用...Passport.js會話混亂

Auth.Login(username,pasword) 

當他們註銷你只是做:

Auth.logout() 

如果你需要檢查他們登錄你只需做:

Auth.IsLoggedIn() 

或代碼爲此。好像Passport for node並不那麼簡單。我花了整個晚上得到這個工作...

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'}); 
    } 
)); 

所以現在我有沒有餅乾,沒有會話堅持,當我登錄,然後打/authentication/isAuthenticated網址。我甚至不能在戰略中得到一個斷點......

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

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

    } 
)); 

我在尋找這個錯誤的解決方案嗎?我應該使用基本的中間件功能來滾動我自己的認證嗎?

回答

3

結賬this tutorial。這真的很棒,它對我有很大的幫助。

這裏是我的回購,它已通過mongoose存儲在mongodb中的用戶實施了護照認證,並對密碼進行了散列處理。克隆它或只是檢查出來,它應該有所幫助。 https://github.com/thyforhtian/auth_base

+0

謝謝這真的幫了我。 – Exitos

+0

我很高興它做到了。謝謝 – thyforhtian

+0

@thyforhtian「本教程」的鏈接似乎被破壞 – peralmq