PHP oauth2如何使用refresh_token

时间:2016-12-31 13:17:27

标签: php oauth-2.0

我有点疑惑如何在php中正确使用auth_和refresh_token。

我已经在oauth-provider中注册了一个新的客户端应用程序。之后,我的应用程序将client-id和secret发送到oauth2-authorization-endpoint,返回以下内容:

Array
(
    [result] => Array
        (
            [access_token] => qjdcshsmgwcuvi7hzpgxwqapfb8aoab60fmprk1g
            [expires_in] => 86400
            [token_type] => Bearer
            [scope] => basic
            [refresh_token] => whnutk9npmaikcn1bxbovleuqn9ggn9j00jgyiph
        )

    [code] => 200
    [content_type] => application/json
) 

很好,我现在可以使用access_token查询API。但是access_token将在24小时后到期,整个舞蹈将重新开始。

问题:

  • 我在哪里存储access_token,表明整个过程没有在每个请求上运行?会话不会持久化,在conf文件中,memcache是​​DB?)
  • 如何在会话中保存时间戳并检查是否需要请求新的access_token,如何处理刷新令牌?

1 个答案:

答案 0 :(得分:0)

如果您只在用户在线时使用这些令牌(如登录到您的应用程序),那么我会将其存储在会话变量中。如果您在用户不在线时也使用令牌,则建议将它们存储在数据库中。 在第一种情况下,您每次用户登录时都会收到刷新令牌。在第二种情况下,您只会收到一次刷新令牌(即当用户将其第三方帐户链接到您的应用程序时) )。

要回答第二个问题,建议使用access_token存储到期时间戳。