正确存储 Google OAuth 访问令牌

问题描述 投票:0回答:2

我即将开始使用 Google 的日历 API,我要求访问我的用户的日历。在 php 文档示例中,令牌存储在文件(token.json)中,但在我的情况下,每个用户都可以有一个访问令牌,所以我想将其存储在用户的数据库表中。

  • 将其存储在数据库中安全吗?
  • 存储前需要加密吗?
php oauth google-oauth access-token google-api-php-client
2个回答
14
投票

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

建议存储 token.json 的内容,以方便向 php clinet 库提供该对象。将

file_get_contents($tokenPath)
替换为从数据库中读取之类的内容。

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

将令牌存储在数据库中是标准程序。应该是安全的。任何入侵您数据库的人都需要您的客户端 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,这样我就可以尽可能保留实时令牌。

© www.soinside.com 2019 - 2024. All rights reserved.