所以我正在使用google oauth2的PHP客户端库。我需要为我建立的应用程序进行预先设置的会话。当用户第一次登录时,将显示刷新令牌。但是,当用户关闭浏览器并再次登录应用程序时,刷新令牌不再存在,一小时后会话消失。
我知道访问类型应该设置为: access_type ='离线'
以及批准提示: approval_prompt =' auto'
我的问题是,如何让会话持续超过1小时?我是否需要在某处存储令牌(即数据库,cookie等)。如果是这样,我该怎么做?我无法理解如何做到这一点。
感谢。
答案 0 :(得分:0)
是的,如果您想要将用户的授权保持在浏览器会话之外,则需要将令牌保存在某处。您可以将其保存在数据库中,在他登录您的应用程序后,您可以使用$client->setAccessToken($token)
方法加载已保存的令牌。
我不确定PHP lib是否会自动刷新令牌,但如果没有,您可以在设置令牌后执行以下操作:
if ($client->isAccessTokenExpired()) {
$token_data = json_decode($token);
$client->refreshToken($token_data->refresh_token);
}