如何在 java 中使用 HttpURLConnection 发回 JWT 令牌?

How to send back a JWT token with HttpURLConnection in java?

我正在使用 API 来获取一些信息。在每个会话开始时,您需要获取 JWT 令牌才能向 API 发送请求。在我获得令牌并尝试发送请求后,我收到一条错误消息,提示我未经授权,这很公平,因为我没有在请求中附加令牌。问题是 API 的文档没有解释如何做到这一点,而且我也无法在其他任何地方找到它。我该怎么做呢?我这样做是 Java 并且使用的是他们自己的 HttpURLConnection。希望你明白我的意思。

在此先感谢您!

这取决于 web-service (API) 希望如何表示令牌。

常见的有:

  • HTTP 请求 headers(XHR 请求的问题)
  • 查询参数(因为 caching/logging 而不是个好主意)
  • 表单字段(不是通用的)
  • URL 段(因为 caching/logging 是个坏主意)
  • 某些以令牌为值的 cookie(透明)或
  • 身份验证header(典型)

HTTP RFC 中定义的身份验证 header 通常与 BasicDigest 授权方案一起使用。如果字符串(令牌)验证该令牌的持有者,则使用 "Bearer" 方案(例如在 RFC6750 中为 OAuth2 定义)。

你会用

uc.setRequestProperty("Authorization","Bearer " + jwt); 

为此。