Я пытаюсь реализовать гибридный протокол OpenID + OAuth в своем приложении для Google. Я получаю токен запроса. Итак, следующим шагом в качестве документа в Federated Login является токен обменного запроса для токена доступа.Как получить токен доступа из токена запроса для OpenID + OAuth с помощью java
Я пробовал его с использованием библиотеки Java OAuth, но я не получаю токен доступа. Я стараюсь, чтобы оба подхода с тремя ногами и двумя ногами не увенчались успехом.
Неужели кому-то удастся выполнить гибридный протокол.
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(consumerKey);
oauthParameters.setOAuthConsumerSecret(consumerSecret);
calendarService = new CalendarService("marketplace-hello");
try {
calendarService.setOAuthCredentials(oauthParameters,
new OAuthHmacSha1Signer());
CalendarEventFeed results = calendarService.query(calendarFeedUrl,
CalendarFeed.class);
}
catch (OAuthException e)
{
throw new ServletException("Unable to initialize calendar service", e);
}
Это бросает com.google.gdata.client.authn.oauth.OAuthException: oauth_token не существует.
oAuthParameters.setOAuthType (OAuthType.TWO_LEGGED_OAUTH); и xoauth_requestor_id attibute to feedURL, если я добавлю эти строки в код, я получаю недопустимое исключение AuthSub Token, я не знаю, почему это говорит о недопустимом AuthSub.
Вам нужно включить больше информации. * Почему это не работает? Что пошло не так? Есть ли сообщения об ошибках? Объясните, как вы пытаетесь это сделать. Мы не читатели. – Qwerky
Спецификации OAuth имеют 2 спецификации 1) 3-Legged и 2) 2-legged. В трехногих участвуют 3 участника 1) поставщик услуг 2) Потребитель и 3) Пользователь В 2-х ногах только 2 стороны, привлеченные 1) поставщик услуг и 2) потребитель и пользователь - это один и тот же объект (принадлежит к одному домену). Вышеупомянутый код, упомянутый выше, предназначен для двухэтапного процесса аутентификации, для которого не нужен токен доступа. Но нужен ключ потребителя и секретный ключ, требуя, чтобы ему нужно указать идентификатор электронной почты того же домена, например: user @ cosnumerkey. Это единственный сценарий, в котором мы используем двухэтапный процесс аутентификации. – JAVAC
Почему бы вам не использовать существующую библиотеку? –