PHP:浏览器关闭时刷新令牌消失。

时间:2014-04-16 17:21:56

标签: php oauth-2.0 google-oauth google-api-php-client

所以我正在使用google oauth2的PHP客户端库。我需要为我建立的应用程序进行预先设置的会话。当用户第一次登录时,将显示刷新令牌。但是,当用户关闭浏览器并再次登录应用程序时,刷新令牌不再存在,一小时后会话消失。

我知道访问类型应该设置为:            access_type ='离线'

以及批准提示:            approval_prompt =' auto'

我的问题是,如何让会话持续超过1小时?我是否需要在某处存储令牌(即数据库,cookie等)。如果是这样,我该怎么做?我无法理解如何做到这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

是的,如果您想要将用户的授权保持在浏览器会话之外,则需要将令牌保存在某处。您可以将其保存在数据库中,在他登录您的应用程序后,您可以使用$client->setAccessToken($token)方法加载已保存的令牌。

我不确定PHP lib是否会自动刷新令牌,但如果没有,您可以在设置令牌后执行以下操作:

if ($client->isAccessTokenExpired()) {
    $token_data = json_decode($token);
    $client->refreshToken($token_data->refresh_token);
}