在我自己的服务器上托管自己的用户认证服务?

时间:2014-09-10 22:11:14

标签: postgresql oauth hosting

我曾尝试使用类似于此问题标题的Google查询,但未找到任何有用的内容。

后台:我正在构建一个Web应用程序,并希望为其添加用户身份验证级别。我无法想象比从头开始构建用户身份验证系统更糟糕的事情,所以我想要一个快速的解决方案。

我正在寻找我可以在我的服务器上托管的开源软件,该软件提供了我可以连接到多个用户帐户的身份验证层

标准

  • 我想在自己的服务器上托管软件
  • 提供适用于多种登录策略的登录屏幕 - twitter,facebook,vanilla email等。
  • 将用户持久保存到数据库(最好是 postgres )并保留会话数据
  • 最好让我为每个用户存储最少量的数据,例如键值存储
  • 有一个客户端(Javascript)API,就像Facebook的JS一样,所以我可以在多个站点上使用这个auth服务。也就是说,我想在localhost或我自己的文件系统上使用它(当允许文件cookie时)。客户端JS API公开了登录/注销等方法
  • 有一个服务器端API(例如公开本地RESTful端点),这样当我为用户以外的其他数据存储构建我的服务器端应用程序时,我的应用程序可以查询auth服务以获取登录状态。
  • 我想完全独立于我自己的应用程序运行这个堆栈 - 实际上我想运行这个auth服务并且从我的本地开发环境纯粹地与它进行通信,而不构建我自己的任何服务器端应用程序。

我使用过Firebase,他们做了很多我想要的事情,包括登录策略和客户端/服务器端API,但我希望能够托管我自己的版本。

我无法想象有人会因为建立任何类型的用户身份验证而感到高兴,所以我很惊讶我没有在研究中找到任何东西。

我也知道这是一个开放式的问题,但据我所知,我没有找到满足我要求的任何

3 个答案:

答案 0 :(得分:1)

我喜欢Devise(https://github.com/plataformatec/devise),它适用于Rails。它有一个活跃的社区,有大量的插件可以满足您的许多要求。

答案 1 :(得分:1)

我没有看到指定的语言;大多数语言和框架都有自己的实现。你能提供更多信息吗?

示例:我在python上使用Flask框架。另外,我使用Authomatic库,为twitter,google,facebook等提供Oauth访问。

答案 2 :(得分:0)

我所寻找的是一种称为单点登录的解决方案。根据{{​​3}},目前没有任何内容符合我的标准。

相反,我选择只运行本地网络服务器并实施常规的身份验证流程。