2015-06-27 105 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

当我知道有没有正式的办法做到这一点

相关问题