Ruby on rails 多个项目、多种语言、相同的身份验证

Ruby on rails 多个项目、多种语言、相同的身份验证,ruby-on-rails,node.js,postgresql,authentication,Ruby On Rails,Node.js,Postgresql,Authentication,因此,我有多个项目,我想在Postgres数据库中使用一组公共的核心表来映射它们之间的身份验证方案。“用户”“帐户”“组”或其他相关用户信息等存储在这些表中。我目前的项目是一个nodejs(多个设备)和一个Ruby web应用程序(稍后在多个设备上规划),将来我们还可以有一个Django或另一个node项目。是否有一种高效、经济、可扩展且可靠的方法来实现这一点?我正在考虑使用一个s3实例,该实例上托管有一个Postgres数据库,并将我的多个应用程序的所有身份验证指向该数据库,但我想看看其他人是

因此,我有多个项目,我想在Postgres数据库中使用一组公共的核心表来映射它们之间的身份验证方案。“用户”“帐户”“组”或其他相关用户信息等存储在这些表中。我目前的项目是一个nodejs(多个设备)和一个Ruby web应用程序(稍后在多个设备上规划),将来我们还可以有一个Django或另一个node项目。是否有一种高效、经济、可扩展且可靠的方法来实现这一点?我正在考虑使用一个s3实例,该实例上托管有一个Postgres数据库,并将我的多个应用程序的所有身份验证指向该数据库,但我想看看其他人是否也考虑过这个问题。

首先,请不要尝试在s3中托管Postgres。。我相信您可能指的是带有EBS卷的EC2(实际上在s3上)。从易用性的角度来看(特别是在考虑持续维护时),在Amazon的RDS产品上托管任何postgres实例确实是一种乐趣。在不详细介绍该产品的所有细节的情况下,我只想说,您只需单击几下即可设置高可用性(故障切换)、备份、升级和监视

这就是说,RDS不是最便宜的解决方案,但成本也不会过高,这取决于您的负载和同时连接的数量

如果这个数据库所要做的只是对用户进行身份验证,然后断开连接,那就太过分了,而且会浪费资源。但是,如果您拥有一组相当复杂的权限和其他用户数据,那么它可能是一个相当简单的解决方案


根据您的预算和要求,在应用服务器上的某个位置运行pgPool来共享连接可能会让您受益匪浅,但除非您需要,否则我不会开始使用pgPool。

避免使用表名
user
,您必须像
“user”一样到处引用它
因为有一个名为该名称的内置伪函数,它是一个关键字。