所以我使用的是google oauth2的PHP客户端库。我需要为我正在构建的应用程序做一个预存会话。刷新令牌在用户首次登录时显示。但是,当用户关闭浏览器并再次登录应用程序时,刷新令牌将不再存在,一小时后会话将结束。
我知道访问类型应该设置为:access_type="脱机"
并且审批提示为:approvel_prompt="自动"
我的问题是,如何使会话持续时间超过1小时?我需要把令牌存储在某个地方吗(比如数据库、cookie等)。如果需要,我该怎么做?我很难理解该怎么做。
谢谢。
是的,如果您想将用户的授权保留在浏览器会话之外,则需要将令牌保存在某个位置。你可以将其保存在数据库中,在他登录你的应用程序后,你可以使用$client->setAccessToken($token)
方法加载你保存的令牌。
我不确定PHP库是否会自动刷新令牌,但如果没有,您可以在设置令牌后执行以下操作:
if ($client->isAccessTokenExpired()) {
$token_data = json_decode($token);
$client->refreshToken($token_data->refresh_token);
}