3

Ссылка будучи чисто взяты из следующих сайтов: -Apache Олту Spring Security OAuth2 и Google Интеграция

Я разработал Струнный безопасности OAuth2 Facebook интеграционный пример, теперь я с нетерпением жду развития безопасности OAuth2 (и более поздний пример Github), где AppID и Secret будут предоставлены для получения «access_token» и «refresh_token» и т. Д., Которые будут использоваться для доступа к защищенным ресурсам, таким как UserDetails и т. Д.

Итак, первым шагом будет регистрация приложения на http://code.google.com/apis/console. Поэтому он дает мне «Идентификатор клиента» и «Клиентский секрет», также я настроил URI перенаправления, Готово!

Теперь я начал писать фактический клиент Apache OAuth, но я не уверен, какие параметры мне нужно предоставить (аналогично, я предоставляю для интеграции с Facebook, эти параметры были легко доступны на facebook, при этом выполняли поиск в Google, но не найденный для Google), Просьба представить мне, какие значения должны быть указаны для следующих пустых параметров: -

Я думаю, что я предоставил достаточно информации, поэтому все рекомендации/ссылки/ссылки оценены.

OAuthClientRequest request = OAuthClientRequest 
       .authorizationLocation("") 
       .setClientId("3kT21Hlkzzt5eV1") 
       .setRedirectURI("http://localhost:8080/apache-oltu/google/redirect") 
       .setResponseType("") 
       .setScope("") 
       .buildQueryMessage(); 

Следующий код разработан для обратного вызова

private void getAccessToken(String authorizationCode) throws OAuthSystemException, OAuthProblemException { 
     OAuthClientRequest request = OAuthClientRequest 
       .tokenLocation("") 
       .setGrantType() 
       .setClientId("3kT21H5EO3zzt5eV1") 
       .setClientSecret("1kT21Hdlkzzt5eV1") 
       .setRedirectURI("http://localhost:8080/apache-oltu/google/redirect") 
       .setCode() 
       .buildBodyMessage(); 

Добавлен следующий код, чтобы получить защищенные ресурсы, как профиль пользователя:

request= new OAuthBearerClientRequest("https://www.googleapis.com/auth/userinfo.profile"). 
        setAccessToken(oAuthResponse.getAccessToken()). 
        buildQueryMessage(); 

ответ

1
+0

Я изменил код и использовал область действия (https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read https: //www.googleapis.com/auth/plus.me), но я вижу, что это не дает мне данные профиля. Не могли бы вы помочь или помочь? –

+0

добавьте область «email профиля openId» и в настроенное клиентское приложение также включите эти области. Если в консоли Google вы не включили связанные с google + socpes, Google не будет предоставлять вам информацию о пользователе. –

+0

@prtk_shah: Я использую .setScope («профиль профиля openId»), все еще неспособный получить данные профиля. не могли бы вы помочь мне как можно скорее? Saqib: Спасибо. Не могли бы вы предоставить более подробную информацию. Это не понимание того, для какого URL вы использовали. –

0

Я разработал Пример интеграции Apache Oltu и Spring, и он отлично работает на моем конце.

Вам необходимо включить API Google+, как предлагается @prtk_shah. Благодарю.

Вам нужно перейти к https://console.developers.google.com/project?authuser=0 и нажать на ваш проект, в моем случае это «apache-oltu», в вашем открытом проекте найдите опцию API и auth -> API. найдите Google+ API и включите его.

Здесь вы можете быть в этом состоянии. enter image description here

Итак, я изменить код ниже оно должно быть так:

(IMP) - Ваш идентификатор клиента должен быть таким, для Ex: (755670439314-jcumfghnkmcm72hf40beikvoatknstml.apps.googleusercontent.com) , Пожалуйста, убедитесь, что это правильно.Fyi - использовать, как это предусмотрено Google консоли разработчика

OAuthClientRequest request = OAuthClientRequest 
       .authorizationLocation("https://accounts.google.com/o/oauth2/auth") 
       .setClientId("3kT21Hlkzzt5eV1.apps.googleusercontent.com") 
       .setRedirectURI("Give your projects redirect URI") 
       .setResponseType("responsecode") 
       .setScope("openId profile email") 
       .buildQueryMessage(); 

Код обратного вызова должен быть:

private void getAccessToken(String authorizationCode) throws OAuthSystemException, OAuthProblemException { 
     OAuthClientRequest request = OAuthClientRequest 
       .tokenLocation("https://accounts.google.com/o/oauth2/token") 
       .setGrantType(GrantType.AUTHORIZATION_CODE) 
       .setClientId("give your complete client id") 
       .setClientSecret("give your secret") 
       .setRedirectURI("This will be your callback or Redirect URL (Give it correctly)") 
       .setCode(authorizationCode) 
       .buildBodyMessage(); 

Вот что я получаю в моем примере, просто хотел показать вам

enter image description here

Надеюсь, это будет полезно.