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

时间:2016-12-18 20:55:46

标签: php google-oauth2 oauth2 google-openid

我手动编写OAuth2 Server Flow以允许用户使用Google(和其他网站登录,但让我们专注于Google)。

我的基本流程正在运行:

  1. 用户点击登录链接。
  2. 访问Google并看到同意屏幕。
  3. 接受。
  4. 重定向回我的网站。
  5. 服务器获取相关信息并将用户登录。
  6. 到目前为止一切顺利。现在我想确保服务器记住下次用户。为此,我将令牌与其他用户数据一起存储在服务器上。

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

1 个答案:

答案 0 :(得分:1)

由于Google的授权成功,您还应该获得refresh_token。如果您没有这样做,请执行以下操作。

  1. 当您重定向到授权端点时,添加其他参数access_type = offline,这将确保您获得refresh_token
  2. 使用刷新令牌获取额外的访问权限。
  3. 现在,为了验证,如果您没有维持状态,则可以点击Google的令牌验证端点。如果您正在维护状态,那么您可以验证令牌是否到期,如果令牌只有签名,如果加密,那么您必须从Google验证。

    您可以使用不同的Google OAuth网址here

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