rails和nodejs之间的安全性

我有一个应用程序,主要是在轨道上,但也使用nodejs的一些实时function,例如聊天。 用户通过Railslogin并像往常一样分配会话等。 但是,与同一用户进行身份validation的最佳方式是什么? 例如,我想阻止用户模仿对方,但现在在rails上完成login,并在nodejs上完成消息传递。 Rails和nodejs都可以访问同一个数据库。

如果有问题,我正在使用devise和插件。

实施方法有很多,你可以解决这个问题。 跳转的想法是通过数据库共享devise用于nodejs的会话cookie。

IIRCdevise在authentication期间创build一个encryption的会话cookie; 将这个值暂时保存到你的数据库中,让nodejs从数据库中popup它的authentication。 这可能会有一些困难(将一些deviseencryption移植到nodejs等),但如果你正在做一个rails / nodejs应用程序,我敢肯定你有能力处理它。 :d

这样做的好处是用户不能在交接之间完成模仿。

您始终可以为在rails和节点之间传递的任何用户生成一次性令牌。 比重新实现(和维护)devise和rails所使用的encryption策略要容易得多。

也就是说,在服务器之间共享会话为您创造了许多额外的工作,并有效地将您的bug表面积(模式,validation等)加倍。

Faye是一个很棒的项目,可以处理这个确切的用例,所以它可能值得一看:) http://faye.jcoglan.com/