2012-03-26 49 views
0

我已創建使用三方OAuth訪問用戶聯繫人API的Web應用程序。在這個過程結束時,我收到一個access_token和access_token_secret,它們與user_id(用戶的電子郵件)一起保存在數據庫中。Java OAuth檢索用戶標識

問題是,下次有人試圖通過OAuth我想要的,如果我已經有現有令牌使用它,而不是通過整個過程。

是否有方法在用戶通過身份驗證之前獲取user_id。

爲了驗證我正在使用的代碼從這裏: http://code.google.com/appengine/articles/java/retrieving_gdata_feeds.html

回答

1

在後臺使用存儲的訪問令牌訪問的網頁(\me?access_token=)。如果令牌仍然有效,您將得到一個沒有錯誤的迴應。如果令牌不再有效,您將得到一個OAuthException作爲迴應。

get userData with old access token 

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

這取決於受OAuth保護的資源。通常,如果存在目標user_id,則可以通過額外調用RESTful服務來獲取它。

例如,對於Google+,你就會有這樣的事情(使用我G+ wrapper):

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

澄清:我使用的是OAuth認證的谷歌聯繫人API。 – Ivo 2012-03-26 14:40:54

+0

好吧,我不知道那裏是否有ID – Bozho 2012-03-26 15:09:48