0


Postman中添加JWT token,JWT token 是什么?从哪里获取

在Postman中,JWT (JSON Web Token) 主要用于通过 Bearer Token 进行API请求的认证。JWT 是一种用于身份验证和信息交换的紧凑、URL安全的令牌,广泛应用于OAuth 2.0等认证协议中。它通常由三个部分组成:Header、Payload 和 Signature,通过“点号”分隔,如下所示:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

JWT 的三个部分:

1. Header (头部):

  • 包含两部分:签名算法和令牌类型。
  • 通常是类似于下面的JSON对象:
{"alg":"HS256",
  "typ":"JWT"}
  • Base64Url编码后组成JWT的第一部分。

Payload (有效载荷):

  • 这是JWT的主体部分,包含声明(claims),可以是关于用户或其他数据的声明。
  • 一些标准声明包括: - iss(发行者)- exp(过期时间)- sub(主题)- aud(受众) 例如:
{"sub":"1234567890",
  "name":"John Doe",
  "admin":true}

Base64Url编码后形成JWT的第二部分。

Signature (签名):

通过对Header、Payload进行编码后,再使用密钥与指定的算法对数据进行签名,防止数据被篡改。
签名公式如下:

HMACSHA256(
  base64UrlEncode(header) + "." + base64UrlEncode(payload),
  secret
)

这样就形成了JWT的第三部分。

JWT 是如何工作的?

  1. 客户端认证: 当用户登录时,身份验证服务器会验证用户的身份。验证通过后,服务器会生成一个JWT,并将其返回给客户端。
  2. JWT的使用: 客户端在后续的请求中,将这个JWT作为认证凭证发送给服务器(通常在请求头部的 Authorization: Bearer 中)。
  3. 服务器验证: 服务器收到请求后,会验证JWT的签名和有效性,验证通过后允许访问受保护的资源。

如何在Postman中添加JWT Token?

  1. 获取JWT Token:
  • JWT通常通过身份验证或授权系统获取。常见的方法有:
  • 使用 OAuth 2.0 登录授权获取。
  • 调用授权服务器的登录接口(如Keycloak、Auth0等),使用用户凭证(用户名和密码)获取Token。
  1. 步骤1:获取Token (使用Postman获取JWT):
  • 使用POST请求获取Token,例如:
POST http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token
  • 在Body中选择x-www-form-urlencoded,并输入以下字段:- grant_type: password- client_id: - client_secret: (如果客户端为confidential类型)- username: - password: - scope: openid 发送请求后,返回的响应中会包含一个access_token,这是JWT的一种形式。
  1. 步骤2:在Postman中设置Authorization:
  • 拿到access_token之后,你可以在Postman中将其用于后续的API请求。
  • 打开需要认证的API请求。
  • 选择 Authorization 选项卡。
  • 在 Type 中选择 Bearer Token。
  • 在 Token 输入框中粘贴你的JWT access_token。
  1. 步骤3:发送请求:
  • 完成设置后,Postman将会在HTTP请求头部自动添加类似以下的授权信息:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • 现在你可以发送带有Token的请求到受保护的API。

JWT Token 从哪些地方可以获取?

  1. 通过身份验证服务器获取:
  • 大多数情况下,JWT由身份验证服务器颁发,像Keycloak、Auth0、AWS Cognito等身份提供商都能颁发JWT。
  • 你可以通过登录流程(OAuth 2.0、OpenID Connect)来获取Token。
  1. 从登录API获取:
  • 应用程序在登录时,通常会通过POST请求将用户凭证发送给服务器,服务器在验证通过后,返回JWT Token。
  1. 通过开发者工具手动生成:
  • 在开发和测试过程中,可以手动生成JWT,例如使用在线工具 JWT.io。
  • 使用开发者工具时,你需要指定正确的Header、Payload,并使用密钥进行签名。

总结

  • JWT Token 是一种用于认证和信息交换的轻量级令牌。
  • 你可以通过身份验证服务器获取JWT Token(例如通过登录或OAuth授权流程)。
  • 在Postman中,你可以将JWT作为Bearer Token,设置到请求的Authorization头部,进行API请求认证。
  • 常见的JWT获取方式包括通过身份提供商(如Keycloak、Auth0)或者自定义API的登录端点。 通过这些步骤,你就可以在Postman中成功使用JWT进行认证请求。

本文转载自: https://blog.csdn.net/weixin_45428910/article/details/142995386
版权归原作者 Smile sea breeze 所有, 如有侵权,请联系我们删除。

“Postman中添加JWT token,JWT token 是什么?从哪里获取”的评论:

还没有评论