如何在 Flutter 的 google_sign_in 中获取 JWT 格式的访问令牌?

问题描述

我正在验证对在 GCP 云端点后面的 GCP 上运行的私有 API 的调用,如here 所述。

它工作正常,但对于每次调用,我都使用 GoogleSignInAuthentication.idToken,其中包含用户的个人资料信息,并且通常有太多信息无法访问。

GoogleSignInAuthentication.authTokenGoogleSignInAccount.authHeaders 不是 JWT 格式并且被端点拒绝。

有没有办法在 google_sing_in获取 JWT 格式的访问令牌?或者每次调用都可以使用 id 令牌?

解决方法

Google 登录库提供的 idToken 已经是一个 Open Id Connect 令牌,正如您在此 documentation 中看到的那样,这意味着它已经采用安全的 JWT 格式,所以是的,它绝对可以使用它。

Google 登录库还提供了一个 OAuth2 访问令牌,可以使用 GoogleSignInAuthentication.accessToken 调用它,通过使用它,您可能能够生成 JWT 格式的令牌。

所以这完全取决于您,我个人会使用提供的 idToken,因为它已经准备好供您使用。