换码成功后Google返回给我的id token应该如何使用?

How should I use the id token returned to me by Google after a successful code exchange?

我不清楚在初始验证后我应该如何处理来自 Google 的 ID 令牌。

我正在 expo/react 本机开发并在本地获取 ID 令牌。然后,我将它发送到我的服务器并使用 google 客户端库对其进行验证。一旦验证通过,我应该如何处理它?

理想情况下,我可以用它来保护我的 api 路由(快速),但 id 令牌会在 1 小时后过期,我不确定如何使用客户端库刷新它们。所以,我不知道该怎么做。

这是 id 令牌的预期用途吗?我应该改为签署自己的 jwt 并将其发回给客户吗?然后,客户端可以在每个请求的身份验证 header 中将其发送到受保护的路由。

Google 说:

After you have verified the token, check if the user is already in your user database. If so, establish an authenticated session for the user. If the user isn't yet in your user database, create a new user record from the information in the ID token payload, and establish a session for the user. You can prompt the user for any additional profile information you require when you detect a newly created user in your app.

https://developers.google.com/identity/sign-in/ios/backend-auth

我是否使用 id 令牌“为用户建立 session”?

是的,ID-token 仅用于创建本地会话,如果使用的话,也许还会在您的本地数据库中创建一个本地条目。

ID 令牌的生命周期也很短,在某些系统中只有 5 分钟。所以没有长期使用。

ID 令牌用于对用户进行身份验证。它为您提供有关经过身份验证的用户的信息,不应使用它来允许访问您的端点。访问令牌或会话旨在这样做。所以在你的情况下,你应该完全按照你的直觉告诉你 - 根据你在 ID 令牌中获得的数据为用户创建一个会话。

如果您有自己的授权服务器,您可以使用 ID 令牌颁发访问令牌,return 将令牌颁发给前端应用程序,然后使用 访问令牌 访问您的后端。如果您想这样做,请查看 OAuth 流程。