如果GoogleCredential已过期,如何查看

时间:2012-09-27 10:06:34

标签: android google-api oauth-2.0 credentials access-token

我已经从saved-access-token和saved-refresh-token初始化了GoogleCredential变量。但我不知道检查它是否过期了?

我知道GoogleCredential有一个函数getExpiresInSeconds。但是,如果我从saved-access-token和saved-refresh-token初始化GoogleCredential,则函数getExpiresInSeconds将返回null。

此案例getExpiresInSeconds不会为空

mResponse = mFlow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute();
mCredential =  new GoogleCredential.Builder().setClientSecrets(CLIENT_ID, CLIENT_SECRET).setJsonFactory(mJsonFactory).setTransport(mHttpTransport).build();
mCredential.setFromTokenResponse(mResponse);
mCredential.getExpiresInSeconds() // will return expired value in second

但在这种情况下

String accessTokenSave = mPrefs.getString(GOOGLE_DRIVE_TOKEN, "NO KEY");
String accessRefreshTokenSave = mPrefs.getString(GOOGLE_DRIVE_REFRESH_TOKEN, "NO KEY");

mHttpTransport = new NetHttpTransport();
mJsonFactory = new JacksonFactory();
mCredential = new GoogleCredential.Builder()
.setClientSecrets(CLIENT_ID, CLIENT_SECRET)
.setJsonFactory(mJsonFactory)
.setTransport(mHttpTransport).build();

mCredential.setAccessToken(accessTokenSave);
mCredential.setRefreshToken(accessRefreshTokenSave);
mCredential.getExpiresInSeconds() // will return null value

那么如何检查mCredential案例从accessTokenSave和accessRefreshTokenSave加载

1 个答案:

答案 0 :(得分:1)

访问令牌在一小时后到期,而刷新令牌将一直有效,直到用户撤销为止。但是,您永远不应该依赖这些时间,而是准备好在凭据不再有效时捕获异常,并做出相应的反应。

查看文档以获取完整流程的说明以及实现它的示例代码:https://developers.google.com/drive/credentials