在Node.js服务器中实施安全且可用于生产环境的身份验证系统,而不必与第三方提供商绑定

时间:2018-07-10 15:09:42

标签: node.js authentication

我习惯于使用处理身份验证的Meteor JavaScript框架开发Web应用程序。我现在是第一次开发一个在后端使用Node.js(Express)+ GraphQL堆栈,在前端使用React的Web应用程序,所以我必须自己处理身份验证。

我阅读了很多有关它的内容,并且我喜欢基于令牌的身份验证的想法。我正在考虑使用JWT,因此不必处理会话。

我知道有很多教程,但是每个教程总是有一种免责声明,例如:“该教程尚未投入生产,仅用于教育目的...”。每次我阅读有关身份验证的内容时,似乎很难实现,我不应该自己实现。但我不想使用AWS Cognito,Google Cloud Platform等服务提供商,因为我想将用户数据保留在自己的系统和数据库中。我不想被第三方提供商捆绑。

我知道如何生成jwt令牌,刷新令牌,如何验证它们,等等...我能够开发可运行的身份验证系统,但是由于以下原因,我不确定我会以安全且可用于生产的方式进行此操作我可以在Internet上阅读的所有评论。

因此,您建议在不依赖第三方提供程序的情况下在Node.js服务器中实施安全且可生产的身份验证系统的建议。您知道有关它的任何完整教程或文档吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现对应用程序的身份验证。

  • 使用由您管理的身份服务器
  • 使用全面管理的服务进行身份验证。
  • 使用身份验证中间件。
  • 编写您自己的身份验证解决方案。

如果您担心供应商锁定,我建议使用PassportJS之类的身份验证中间件,该中间件将通过其实现促进身份验证策略的抽象。

另一方面,编写自定义身份验证在安全性方面可能是一个挑战,特别是找到解决这些漏洞的方法。

相关问题