2012-04-19 57 views
1

我目前正在使用Monggose-Auth創建一個用戶身份驗證過程的節點js應用程序。我已經完成了多個教程示例以及我可以找到的關於如何使用Mongoose-Auth的所有指南,但是我碰到了一堵牆。Mongoose-Auth/Express/Connect不支持會話問題

我的基本密碼auth似乎工作,並重定向到正確的地方,並持有用戶等等等等。我的問題是,添加我的需要登錄功能的用戶配置文件頁面我有一個問題,我只是重定向回到登錄頁面。看來,這是因爲會話然而不知何故失去了當我看着我的everyauth調試輸出(貓鼬-auth的是建立在everyauth頂部)我看到下面的

啓動步驟 - displayLogin

...完成一步

GET /favicon.ico

啓動步驟 - extractLoginPassword

...成品步

開始步 - 驗證

...成品步

啓動步驟 - interpretUserOrErrors

...成品步

啓動步驟 - 的getSession

...成品一步

開始步驟 - addToSession

...成品步

啓動步驟 - respondToLoginSucceed

...成品步

啓動步驟 - respondToLoginFail

...成品步

GET /用戶/個人資料

開始步驟 - displayLogin

...成品步

GET /favicon.ico

我的應用程序可以在這裏找到 - >https://github.com/Themitchell/Node-Express-Connect-Mongoose-Auth-Stack < - 而且應該迅速建立,如果你想親身體驗一下!它使用正確的package.json等這樣只需運行

NPM安裝 然後 節點server.js

我想過從別的地方拉一個例子來嘗試和借鑑,但我想明白了什麼問題而不是在我還不明白的東西之上進行破解!

據我所知,mongoose-auth不應該堅持會話本身,而是我將不得不通過連接來做到這一點,例如我認爲我做得正確。

看看該項目的文件有可能在

配置/ environment.js

應用程序/模型/ user.js的

最後

配置/ routes.js有要求登錄功能(我知道它現在只有這裏

感謝您提前幫助人:) :)

回答

0

這不是一個完整的答案,但你可以看到我如何設法在我的項目中處理Auth。 我使用Mongoose,Express,Passport + Passport Local來處理Auth和connect-mongodb來堅持會話(很難得到完整的堆棧工作)。優點是即使在服務器重啓之間也可以檢索會話。

鏈接到主文件:

什麼是重要的:

  • Auth.js將幫助你A很適合您的Mongoose使用Passport Auth。
  • 設置connect-db來保存會話並不容易,這很舒服。

看看我怎麼設置連接-DB(最佳看到的是LoastAndFound.js,或.coffee):

app.use(express.session({ 
    secret: 'awesome unicorns', 
    maxAge: new Date(Date.now() + 3600000), 
    store: new common.mongoStore({ 
     db: Data.mongoose.connection.db 
    }, function(err) { 
     return console.log(err || 'connect-mongodb setup ok'); 
    }) 
})); 

注:請原諒我不是完美的我的代碼,需要更多評論和未被測試。

+0

護照當然似乎是一種更好,更乾淨的方式來實現這種認證。 Mongoose-auth和everyauth似乎都被記錄在案。你有沒有設法讓你的整個auth棧工作。你也嘗試了其他認證策略。我仍然略微不確定我的場景與示例everauth應用程序的差異。 – 2012-04-23 20:48:04

+0

對不起,遲到了,我在ATM上旅行。是的它完美的作品!實施護照本地策略非常簡單,並且完美運作。更難(但可選)的部分是堅持會話,但它是一個不同的問題,你會有任何auth lib。我沒有測試其他庫(mongoose auth,everyauth) – 2012-04-27 11:02:29