基于REST / Web的身份validation即服务的可能性?

我使用Express开发了一个基于REST的服务,最初开始自己实现身份validation。 简单的用户名/密码authentication在哪里

  • 密码使用BCryptencryption
  • 用户信息+散列密码存储在mongoDB中
  • 密码validation检查完成。
  • authentication令牌(有限的TTL)被生成/validation

我对Node.JS有一些了解,但还不足以让我感觉舒服一点,就是推出我自己的身份validation(login/注册)机制。

出于这个原因,我想用别的东西取代我的内部机制。

有东西被certificate,可扩展,可插拔和易于使用。

考虑到基于Node.JS的安全网站/ REST API的数量,我确信有人或公司必须提供的开箱即用的解决scheme可以使服务实现者快速启动并运行,而无需担心安全性/用户方面。

我正在寻找一个比passport或者everyauth图书馆even higher level of abstraction 。 一些提供开箱即用的function,能够满足我的要求,包括:

  • 提供login页面/注册页面/configuration文件页面
  • 不同的authentication模块(谷歌,脸谱,Github,….)
  • 在数据存储(mongoDB)中存储用户信息(如果需要,需要+证书)。
  • 记住我
  • 忘记密码/重置密码

所以这里的问题是:

  • 是否有可用的提供比护照/ everyauth / …更高的抽象级别的解决scheme?
  • 如果有的话,你会推荐一些这种现成的解决scheme吗?
  • 我是否应该忘记outsourcing my user authentication的概念,并开始查看护照和outsourcing my user authentication ,并开始使用这些库实现我的要求?
  • 是否可以专注于我的业务逻辑,而不用担心有关用户身份validation的任何方面(写入login/注册页面,实现忘记密码/重置密码stream程,将用户信息存储在数据库中)。

服务API应该在很大程度上独立于您的身份validation机制生活,所以我build议在简单的密码保护文件夹或一些这样的背后启动。 在我看来,最好确保你的API工作,并能获得牵引力。 这意味着这将是一个长期的项目。 没有什么比专注于开箱即用的痛苦东西更快速地杀死项目。

至于什么服务使用? 设置安全性并不重要。 所以对于一个小型的启动项目,与其他服务集成可能更具成本效益。 可能会看看Mozilla的angular色 。 它build立在Node上 ,非常简单。

如果你确实试图让自己得到一些外部的专业知识, 不要做像SHA1这样的散列algorithm来存储密码的愚蠢的东西。 而是使用类似bcrypt的东西。 然后还有其他一些东西,不要将服务器日志存储在创build的服务器上。 把其他地方的所有日志都挖出来,所以如果有入侵,你会有一个取证追踪到发生的事情。

我想你可以使用https://stormpath.com/ 。 我正在寻找一个自由的替代品