繁体   English   中英

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

[英]REST / Web based authentication-as-a-service a possibility?

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

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

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

因此,我想用其他方法代替内部机制。

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

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

我正在寻找比passporteveryauth类的库even higher level of abstraction 提供开箱即用功能的功能,能够满足我的要求,包括:

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

所以这里的问题是:

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

服务API应该在很大程度上独立于您的身份验证机制,因此,我建议在一个简单的受密码保护的文件夹或类似的文件夹之后启动此API。 在我看来,最好是确保您的API正常运行并且可以吸引人。 这意味着它将是一个长期的项目。 专注于开箱即用的痛苦事物,没有比杀死项目更快的了。

至于使用什么服务? 很好地设置安全性并非易事。 因此,对于一个小型启动项目,与另一个服务集成可能更具成本效益。 可能看看Mozilla Persona 基于Node构建 ,非常简单。

如果您愿意尝试自己动手,请具备一些外部专业知识,并且不要做一些愚蠢的事情,例如使用SHA1之类的哈希算法来存储密码。 而是使用bcrypt之类的东西。 然后还有其他事情,例如,不要将服务器日志存储在创建的服务器上。 将所有日志移到其他位置,这样,如果有入侵,您可以通过法医追溯到发生的事情。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM