Google OAuth2 验证服务器流中的访问令牌

Google OAuth2 Validate access token in Server Flow

我正在手动编写 OAuth2 服务器流程以允许用户使用 Google(和其他网站,但让我们关注 Google)登录。

我有基本的流程:

  1. 用户点击登录 link。
  2. 转到 Google 并看到同意屏幕。
  3. 接受。
  4. 重定向回我的网站。
  5. 服务器获取相关信息并让用户登录。

到目前为止一切顺利。现在我想确保服务器下次记住用户。为此,我将令牌与服务器上的其他用户数据一起存储。

现在,我如何检查服务器到服务器令牌是否仍然有效?我有它的到期时间,所以我知道它在该时间过后无效,但我该怎么办?如果我只想允许登录,是否应该要求永久(离线)令牌?

作为 Google 授权成功的结果,您也应该得到 refresh_token。如果您没有得到,请执行以下操作。

  1. 当您重定向到授权端点时,添加附加参数 access_type=offline 以确保您将获得 refresh_token
  2. 使用刷新令牌获取额外的访问令牌。

现在,如果您不维护状态,则可以点击 Google 的令牌验证端点进行验证。如果您正在维护状态,那么如果令牌仅被签名,则可以验证令牌是否过期,如果加密,则必须从 Google.

进行验证

您可以使用不同的 Google OAuth URL here

有关令牌验证的更多详细信息here