php-存储access_token的最佳解决方案

时间:2019-05-29 07:48:39

标签: oauth-2.0 session-cookies access-token twitch-api

我正在创建一个小应用程序,用户必须在其中使用Facebook进行身份验证(我正在使用OAuth2)。此时,所有此过程如下所示:

  • 用户将单击“ FB登录”按钮。
  • 将要求用户登录Facebook并允许权限。如果用户允许,它将返回授权码。
  • 现在,我们将使用授权码来获取访问令牌。
  • 我们可以将访问令牌存储在会话中以启动用户会话。
  • 现在,我们可以使用访问令牌来访问不同的用户资源。

这里我有一个问题-最好(即最安全的方式)存储access_token以便以后使用吗?只是将其“隐藏”到数据库中,并在需要时使用它,还是可以开发一些原始的哈希算法来保护它?

1 个答案:

答案 0 :(得分:0)

访问令牌的生存期很短-如果您有服务器端会话,则将访问令牌保留在其中(不在数据库中)会更容易,以便所有请求都可以使用它。重用单个访问令牌比使用刷新令牌为每个请求获取一个新访问令牌要好。原因之一是性能。获取新的访问令牌可能会撤消由相同刷新令牌创建的较早的访问令牌,但这取决于您的OAuth2服务器实现。

后端会话应该足够安全,只要您的服务器不将其会话数据保存在任何人都可以读取的位置(某些临时磁盘存储)即可。

在会话中保留访问令牌时,您可能必须找到一种方法来刷新它们-您应防止多个请求(线程)刷新单个访问令牌。