无法理解网络应用的多种身份验证/技术方式

时间:2021-08-01 20:51:11

标签: security authentication oauth authorization

我正在制作一个网络应用程序,我想在其中包含用户身份验证。到目前为止,我已经在我的应用中尝试了 firebase authentication,但我仍然不清楚 authentication 的类型,哪个好用,哪个有什么好处。

我的要求:

  1. 具有私有 APIDatabase 的全栈网络应用
  2. 我想同时添加 Google Sign 和使用电子邮件和密码的登录
  3. 我想同时链接 authentication,就像用户使用 google 或电子邮件登录一样,都在 database 中链接和管理。
  4. 我想更专注于“学习”,使用最适合“生产”并被“流行平台”使用的东西。

到目前为止,我听说过以下方法:

  1. Authentication 使用 Firebase - 这对我来说很容易使用。它有客户端和服务器端 SDK,还可以选择生成令牌,我可以用它来限制对私有 API 的访问。我发现这不像我一样灵活,直到现在我还无法添加自定义逻辑,例如安全密码,自定义字段,自己编写代码,从控制台设置谷歌登录签名 OAuth 屏幕,这是更加增强的,等等。

  2. 我听说过更多 Auth 方式,例如 OpenID Connect、OAuth 2.0。我知道 OIC 是在 Oauth 2.0 之上制作的,它太灵活了,无法添加诸如令牌管理、JWT Security、刷新令牌之类的东西,使用 KMS 之类的 {{1}以及更多。

  3. 另一方面,我也听说过 AWS 之类的东西,目前对我来说听起来像是客户端 passport.js

  4. 听说过像为所有这些创建完整的 framework 服务器或代理 authentication 服务器并将其添加到我们的集群的方法。

我正在寻找最好的方式,从中我可以学到最多并满足我的要求。想要使用一种没有限制、具有最佳安全特性、高度灵活的管理和跟踪、日志记录的方式。一种类似于大多数流行平台所使用的。

还有一件事,如果有人能帮助我理解客户端 nodejs 或此 framework 服务或示例之间的区别,那就太好了,因为我可能不清楚关键字或实际定义.

在谷歌上搜索并阅读了这么多答案后,我没有找到我需要的答案。任何对文章/帖子的引用也将起作用。如果有人提供简短的回答,将不胜感激。

0 个答案:

没有答案