如何使用JavaScript进行身份验证_JWT和OAuth有什么区别呢

admin 百科 12
JWT是令牌格式标准,OAuth是授权框架;JWT由Header.Payload.Signature三部分组成,用于服务端签发、客户端携带、服务端校验;OAuth 2.0实现第三方授权委托,不处理认证本身,常返回JWT格式的Access Token。

如何使用JavaScript进行身份验证_JWT和OAuth有什么区别呢-第1张图片-佛山资讯网

JWT(JSON Web Token)和OAuth是两种不同层级的概念:JWT是一种令牌格式标准,用来安全地传递声明;OAuth(尤其是OAuth 2.0)是一种授权框架,定义了客户端如何代表用户获取访问权限。它们常一起使用,但不能混为一谈。

JWT 是什么?怎么用在身份验证中?

JWT 是一个紧凑、自包含的字符串,由三部分组成(Header.Payload.Signature),通常用于在服务端签发、客户端携带、服务端校验的会话凭证。

  • 登录成功后,后端生成 JWT(如用 jsonwebtoken 库),包含用户 ID、角色、过期时间等信息,并签名防篡改
  • 前端将 JWT 存在 localStorage 或 httpOnly Cookie 中(推荐后者更安全)
  • 后续请求在 Authorization: Bearer <token></token> 头里带上它
  • 后端收到请求后,验证签名、检查过期、解析 payload,确认身份和权限

OAuth 2.0 是什么?它解决什么问题?

OAuth 2.0 不是认证协议,而是“授权委托”协议——允许第三方应用在用户同意的前提下,以用户身份访问其在另一平台(如 GitHub、微信)的数据,而无需拿到用户密码。

  • 典型流程:用户点击“用 GitHub 登录” → 跳转到 GitHub 授权页 → 用户同意 → GitHub 返回授权码 → 你的后端用码换 Access Token → 再用 Token 获取用户基本信息
  • 你自己的系统不存用户密码,也不直接处理登录逻辑,而是信任 GitHub 的认证结果
  • Access Token 可以是 JWT 格式(常见),也可以是 opaque 字符串(由授权服务器内部管理)

JWT 和 OAuth 的关键区别

角色不同: JWT 是“怎么装数据”,OAuth 是“怎么拿数据”。你可以不用 OAuth 用 JWT 做简单登录;也可以用 OAuth 却不用 JWT(比如返回随机字符串 token)。

立即学习“Java免费学习笔记(深入)”;

标签: javascript java js 前端 git json github cookie 支付宝 微信 app acce

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~