【问题标题】:Correctly storing Google OAuth access token正确存储 Google OAuth 访问令牌
【发布时间】:2022-03-16 13:48:17
【问题描述】:

我即将开始使用 Google 的日历 API,我要求访问我的用户的日历。在php docs example 中,令牌被存储在一个文件(token.json)中,但在我的情况下,每个用户都可以拥有一个访问令牌,所以我正在考虑将它存储在用户的数据库表中。

  • 将其存储在数据库中是否安全?
  • 存储前需要加密吗?

【问题讨论】:

    标签: php oauth google-oauth access-token google-api-php-client


    【解决方案1】:

    访问令牌会在一小时后过期。没有理由将访问令牌存储在您的数据库中。您应该存储的是您的刷新令牌。您的应用可以根据需要使用刷新令牌来请求新的访问令牌。

    建议存储 token.json 的内容,以便为该对象提供 php clinet 库。将file_get_contents($tokenPath) 替换为从数据库中读取的内容。

    • 将其存储在数据库中是否安全?

    在数据库中存储令牌是标准的 prosecure。它应该是安全的。任何入侵您的数据库的人都需要您的客户端 ID 和客户端密码才能使用存储在那里的刷新令牌请求新的访问令牌。

    • 存储前需要加密吗?

    你可以,但我不打扰。

    【讨论】:

    • 非常翔实的答案,解决了我的许多问题,非常感谢!
    【解决方案2】:

    我所做的是将它保存在数据库中并使用端点https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=${your_token} 来验证我在数据库中拥有的令牌是否仍然存在,如果我没有使用以下端点https://www.googleapis.com/oauth2/v4/token?client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&refresh_token=${REFRESH_TOKEN}&grant_type=refresh_token 获得另一个令牌,使用这个我尽量保留live token。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-26
      • 2021-09-13
      • 2011-03-18
      • 1970-01-01
      • 2015-06-07
      • 2023-04-04
      • 2017-06-09
      • 2012-06-06
      相关资源
      最近更新 更多