2015-06-27 153 views
2

我正在開發一個仍在開發中的sails應用程序。重新啓動sails.js應用程序時保持用戶登錄

每次我在控制器中進行修改時,都需要使用'sails lift'命令重新啓動sails。希望它可以通過使用「永久」工具來緩解,該工具可以檢測修改並自動重啓。

但是我需要重新登錄到我的應用程序中(因爲會話在重新啓動時丟失了?),這實際上並不方便。

有沒有什麼辦法讓用戶在重新啓動時保存日誌?

+1

請看: http://stackoverflow.com/questions/21106983/unable-to-get-session-for-socket-in-sailsjs-after-restart?answertab=active#tab-top –

回答

2

您可以在本地安裝的Redis和安裝使用它作爲一個會話存儲發展connect-redis並添加下列行來配置/ ENV/development.js

module.exports = { 
    session : { 
    adapter: 'redis' 
    } 
} 

這樣的會話的數據未存儲在存儲器中並且不從帆影響重新啓動

+0

最後,我跟隨了Or Bachar的評論,所以會議現在在DB中持久化。 我安裝了mongoDB(和節點依賴項),並編輯了config/session.js。它工作正常。 但我會嘗試解決方案,只有在開發模式下才有這種行爲。 –

2

我沒有測試它,但如果你是在開發模式,這樣你就可以創建自動登錄你的用戶的策略:

/api/policies/autolog.js

module.exports = function (req, res, next) 
{ 
    //If not logged and sails launch is dev mode, we automatically log user 
    if (!req.session.authenticated && sails.config.environment == "development") 
    { 
    //Do whatever you want to log my user and put it in session 
    req.session.authenticated = true; 
    } 

    return next(); 
}; 

如果你使用這個或者你用來測試用戶是否登錄的話,這個策略必須在sessionAuth之前調用。

如果你不知道政策只是看看這裏http://sailsjs.org/#!/documentation/concepts/Policies

當我知道有沒有正式的辦法做到這一點

相關問題