Java OAuth检索用户标识

时间:2012-03-26 13:45:36

标签: java oauth google-contacts

我创建了使用三方OAuth访问用户联系人API的网络应用程序。在过程结束时,我收到一个access_token和access_token_secret,我将其与user_id(用户的电子邮件)一起保存在数据库中。

问题是下次有人试图通过我想要的OAuth,如果我已经有现有的令牌使用它而不是完成整个过程。

在用户通过身份验证之前,是否有办法获取user_id。

对于身份验证我正在使用此处的代码: http://code.google.com/appengine/articles/java/retrieving_gdata_feeds.html

2 个答案:

答案 0 :(得分:1)

在后台使用存储的访问令牌访问页面(\me?access_token=)。如果令牌仍然有效,您将获得无错误的响应。如果令牌不再有效,您将获得OAuthException作为回复。

get userData with old access token 

if exception is thrown => Redo authentication process
else => continue with old token

答案 1 :(得分:1)

这取决于受OAuth保护的资源。通常,如果存在目标user_id,则可以通过额外调用RESTful服务来获取它。

例如,对于Google+,你会有类似的内容(使用我的G+ wrapper):

String userId = plus.getPeopleOperations().get("me").getId();