2

我已经使用并最初开始自己实施身份验证开发了一个REST基于服务。Express一个简单的用户名/密码验证,其中

  • 密码使用 BCrypt 加密
  • 用户信息 + 哈希密码存储在 mongoDB 中
  • 密码验证检查已完成。
  • 生成/验证身份验证令牌(有限 TTL)

我对 Node.JS 有一些了解,但还不足以让我对推出自己的身份验证(登录/注册)机制感到满意。

出于这个原因,我想用其他东西替换我的内部机制。

经过验证、可扩展、可插拔且易于使用的东西。

鉴于基于 Node.JS 的安全网站/REST API 的数量,我确信人们/公司必须提供开箱即用的解决方案,可以让服务实施者快速启动并运行,而无需担心安全/用户方面。

我正在寻找一个even higher level of abstraction比图书馆像passportor everyauth。提供开箱即用功能的东西,能够满足我的要求,包括:

  • 提供登录页面/注册页面/个人资料页面
  • 不同的身份验证模块(google、facebook、github、....)
  • 将用户信息(如果需要,+凭据)存储在数据存储区(mongoDB)中。
  • 记得我
  • 忘记密码/重设密码

所以这里的问题是:

  • 是否有out-of-the-box类似的解决方案提供比护照/everyauth/...更高的抽象级别?
  • 如果有的话,您会推荐其中一些开箱即用的解决方案吗?
  • 我是否应该忘记outsourcing my user authentication并开始查看护照和everyauth 的概念并开始使用这些库来实现我的要求?
  • 是否可以专注于我的业务逻辑而不用担心有关用户身份验证的任何方面(编写登录/注册页面,实现忘记密码/重置密码流程,将用户信息存储在数据库中)。
4

2 回答 2

1

服务 API 应该在很大程度上独立于您的身份验证机制,所以我建议在一个简单的密码保护文件夹或类似的文件夹后面启动它。在我看来,最好确保你的 API 正常工作并且可以获得牵引力。这意味着这将是一个更长期的项目。没有什么比开箱即用地专注于痛苦的事情更能扼杀一个项目的了。

至于使用什么服务?很好地设置安全性并非易事。所以对于一个小型的启动项目,与其他服务集成可能更具成本效益。可以看看Mozilla Persona。它建立在 Node 上并且非常简单。

如果您确实尝试自己动手,请获得一些外部专业知识,并且不要做愚蠢的事情,例如使用 SHA1 之类的散列算法来存储密码。而是使用类似bcrypt的东西。然后还有其他事情,例如不要将服务器日志存储在它们创建的服务器上。将所有日志通过管道输出到其他地方,这样如果发生入侵,您可以通过取证追踪追溯发生的事情。

于 2013-07-10T23:11:26.840 回答
0

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

于 2015-04-24T21:30:39.037 回答