我在我的 Web 应用程序中使用 OAuth 流程。我的 Web 应用程序与 Google 日历 API 交互,并且用户通过使用他们的 Gmail 帐户登录以进行身份验证。
我只是想确保我的身份验证令牌和访问令牌的理解和使用是正确的:
JWT ID 令牌仅在登录期间需要。我们只需要在登录期间验证它一次,例如:
client.verifyIdToken({idToken: token, audience: CLIENT_ID})
。ID 令牌不用于将用户身份验证到我的 Web 应用程序。参考:https://developers.google.com/identity/sign-in/web/backend-auth这个 JWT ID 令牌与我传递给我的 Web 应用程序安全(已认证)端点的身份验证令牌完全不同。身份验证令牌表示用户会话,可以使用任何库生成(例如:
crypto.generateRandomNumber()
)。另一方面,我将拥有许多访问令牌,用于访问第三方 API(例如 Slack API、Google 日历 API)。这些访问令牌与上述 JWT ID 令牌和身份验证令牌不同。
我的理解/实现是否正确?有一次,我实际上使用我的 Google 日历 API 访问 令牌作为我的 Web 应用程序的 身份验证 令牌,但意识到这可能是错误的。访问令牌将授权用户使用 Google/第三方 API,但我需要一个单独的身份验证令牌来将用户身份验证到我的 Web 应用程序。