【发布时间】:2014-04-15 12:38:13
【问题描述】:
我正在使用 Google API Java 客户端来管理从 Java 中的 Google App Engine 对 Google Drive API 的访问。
我获得了一个用户访问令牌和刷新令牌,并将两者都保存在我们的数据库中。虽然,我认为只有刷新令牌需要持久化。
如何管理访问令牌过期?您如何看待这种策略:
登录到 Web 应用程序后,我会从刷新令牌中获取访问令牌并将其存储在会话中。如何从存储在数据库中的刷新令牌创建 Google 凭据对象?
当我访问 Drive 操作时,如果过期,我会捕获 401 异常以重新创建 Access Token
我已经阅读了有关 Credential and Credential Store 的信息,但它似乎已被弃用。现在必须使用它:StoredCredential。有人有使用这个新界面的示例吗?
谢谢。
【问题讨论】:
-
迭戈,你终于解决了吗?因为我因为过期而被困在同一个例外上。
-
嗨,你怎么了? ^^
-
嗨,我想创建一个凭据对象给定我存储在我的数据存储区中的刷新令牌,以便在不向用户询问新授权的情况下刷新过期的 AccessToken(在后台这样做)。我想你看了一下这个例子:developers.google.com/drive/web/examples/java 因为我正在使用它。
-
/** 用我的旧令牌重建 GoogleCredential 对象 / GoogleCredential credentials = new GoogleCredential.Builder() .setClientSecrets(clientId, clientSecret) .setJsonFactory(JSON_FACTORY).setTransport(HTTP_TRANSPORT)。 build() .setRefreshToken(user.getOAuth2RefreshToken()).setAccessToken(user.getOAuth2AccessToken()); /* 我刷新访问令牌,然后,我得到它*/ credentials.refreshToken(); newAccess = credentials.getAccessToken();
-
抱歉,我无法标记我的评论:s
标签: java oauth-2.0 google-drive-api google-api-java-client