不记名令牌在 Java 后到期

Bearer token expiration in Java

我正在下面呼叫 API 以获得承载 access token

POST https://idcs-xxxx.identity.c9dev2.oc9qadev.com/oauth2/v1/token

检索到 token 后,我将在下面的 APIs 中使用相同的 token。这些 APIs 是单个 transaction 的一部分。但是每次我调用这些 APIs 时,我都必须将 token 传递给 authorization。我不想一次又一次地生成 token 因为它的有效期为 60 分钟。 如何检查令牌是否过期。。如果它已过期,那么我只想重新生成,否则我想使用现有的。我没有使用任何框架来调用 java.I 中的 API,我正在使用 HttpUrlConnection.

GET https://idcs-xxxx.identity-t0.data.digitalassistant.oci.oc-test.com/api/v1/skills

GET https://idcs-xxxx-t0.data.digitalassistant.oci.oc-test.com/api/v1/skills/dynamicEntities

POST https://idcs-xxxx.identity-t0.data.digitalassistant.oci.oc-test.com/api/v1/bots/xxx/v2/yyy

PATCH https://idcs-xxxx.identity-t0.data.digitalassistant.oci.oc-test.com/api/v1/bots/xxx

PUT https://idcs-xxxx.identity-t0.data.digitalassistant.oci.oc-test.com/api/v1/bots/xxx/DONE

可能的概念:写一个Helperclass来完成API请求(例如MyAPIClient.class)。当令牌过期时,大多数 API 会 return 401 HTTP 错误。检查此特定 api 的行为。如果是这种情况,请在此助手 class 中获取一个新令牌并使用新令牌重复请求。获取此令牌后将其缓存 60 分钟(不同的 Java 框架具有不同类型的缓存提供程序,您可以为此使用它)。在任何你想访问 api

的地方使用助手 class