2012-03-26 2 views
0

Я создал веб-приложение, которое использует трехсторонний OAuth для доступа к API контактов пользователя. В конце процесса я получаю 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 для контактов Google API. – Ivo

+0

ну, я не знаю, есть ли там идентификатор – Bozho

Смежные вопросы