在我的nodejs服务器中,我使用'@google-cloud/local-auth'库在日历中创建事件, 当我对谷歌日历进行身份验证时,它会返回一个带有refresh_token的客户端。这个refresh_token的过期时间是多少?
public async authorize(): Promise<any> {
let authClient: any = await this.getSavedCredentialsIfExist();
if (authClient) {
return authClient;
}
authClient = await authenticate({
scopes: ['https://www.googleapis.com/auth/calendar'],
keyfilePath: CREDENTIALS_PATH
});
console.log('authClient', authClient);
if (authClient?.credentials) {
await this.saveCredentials(authClient.credentials.refresh_token);
}
return authClient;
}
返回的客户详细信息:
{
"type":"authorized_user",
"client_id":"***",
"client_secret":"***",
"refresh_token":"***"
}
我查看了 Google Calendar API 文档,但没有找到答案。
请参阅oauth2#过期
刷新令牌被设计为长期有效且不会过期。对于谷歌来说,有几种方法可以让它们过期。
为外部用户类型配置 OAuth 同意屏幕且发布状态为“测试”的 Google Cloud Platform 项目将被授予
refresh token expiring in 7 days
,除非请求的唯一 OAuth 范围是姓名、电子邮件地址和用户个人资料的子集(通过 userinfo.email、userinfo.profile、openid 范围或其 OpenID Connect 等效项)。
注意最后一部分,这是测试而不是验证。