那么您能告诉我 JWT 和 OAuth 之间哪个是更好的选择吗?

问题描述 投票:0回答:1

我尝试使用 React 创建一个 Web 应用程序,并使用 Node js 和 Express 创建 API 作为后端。因此,需要建议 JWT 和 OAuth 之间的最佳选择是什么,以便为我的后端构建健壮、可扩展且安全的 API?

我还没有尝试过任何东西。只是需要建议。

reactjs node.js express oauth jwt
1个回答
0
投票

OAuth 与 JWT:何时分别使用

OAuth: OAuth 就像给别人一把你的汽车代客钥匙:

1-第三方访问: 当您想让应用程序(例如游戏)从其他服务(例如您的 Facebook 好友列表)访问您的信息而不向他们提供您的密码时,请使用 OAuth。

委派访问:当您希望允许某些应用程序代表您执行某些操作(例如日历应用程序访问您的 Google 日历)时,它非常适合。

细化权限:您可以准确指定应用程序可以执行的操作 - 例如,仅读取您的联系人但不发送电子邮件。

复杂的授权流程:如果您需要获取许可的详细流程,OAuth 可以很好地处理它(例如安全地交换代码和令牌)。

JWT : JWT(JSON Web Token)就像拥有一张盖章的音乐会门票:

无状态身份验证:当您想每次证明自己是谁而服务器不跟踪谁登录时,请使用 JWT。您在每次请求时都会显示您的“票据”。

微服务:对于多个小型服务需要独立验证您的身份的系统来说非常有用。

API 安全性: JWT 确保对 API 的每个请求都来自经过身份验证的人。

客户端-服务器简单性:服务器可以轻松检查令牌,而无需会话存储,从而使事情变得快速且可扩展。 何时结合 OAuth 和 JWT 获取令牌:通常,OAuth 用于获取 JWT。 OAuth 处理登录和权限授予,然后为您提供 JWT 以用于持续身份验证。 使用令牌:然后您可以使用 JWT 访问资源,无需再次登录或在服务器上保留会话信息。

现实生活场景

1-使用 Google 登录:OAuth 用于让您使用 Google 帐户登录网站,该网站会获得 JWT 来记住您。

2- 使用 API:对于与服务器通信的移动应用程序,OAuth 可能会从服务获取令牌,并且 JWT 用于确保每个 API 调用都经过身份验证。

要点

1-OAuth:最适合授予第三方权限和复杂授权。

2-JWT:最适合跨多个服务的轻量级、无状态身份验证。 将 OAuth 视为获取特殊密钥的过程,将 JWT 视为用于安全、方便地开门的密钥本身。

© www.soinside.com 2019 - 2024. All rights reserved.