目前,我正在使用oAuth 2.0将Google Drive API与我的桌面应用集成。
我意识到,经过一段时间后,磁盘上存储的Credential
将会过期。当它发生时,我需要再次通过浏览器提示用户,要求他们输入用户名和密码。
public Pair<Pair<Credential, Userinfoplus>, Boolean> authorize(String userId) throws IOException {
try {
Credential credential = flow.loadCredential(userId);
if (credential != null
&& (credential.getRefreshToken() != null || credential.getExpiresInSeconds() > 60)) {
Userinfoplus userinfoplus = org.yccheok.jstock.google.Utils.getUserInfo(credential);
return new Pair<Pair<Credential, Userinfoplus>, Boolean>(new Pair<Credential, Userinfoplus>(credential, userinfoplus), true);
}
// open in browser
redirectUri = receiver.getRedirectUri();
由于用户将继续使用我的桌面应用程序数天,数周和数月,因此他们希望提供用户名和用户名。密码只有一次。
有没有办法阻止Credential
过期?我相信这是可以实现的,因为桌面版Google云端硬盘从不会提示我输入我的用户名和密码。
答案 0 :(得分:0)
我们可以&#34;刷新&#34; Credential
致电refreshToken
。
boolean success = false;
if (credential.getExpiresInSeconds() <= 60) {
if (credential.refreshToken()) {
success = true;
}
} else {
success = true;
}