2016-07-20 3 views
0

Я делаю GAE Java приложениеКак получить Google oauth2 id_token

Авторизация выглядит

GoogleAuthorizationCodeFlow.Builder 
      (
        new NetHttpTransport(), 
        JacksonFactory.getDefaultInstance(), 
        AppConfig.clientId, 
        AppConfig.clientSecret, 
        Collections.singleton("openid email") 
      ) 
      .setAccessType("offline").build(); 

обратный вызов сервлет взят отсюда: https://developers.google.com/api-client-library/java/google-api-java-client/oauth2#authorization_code_flow

метод Успех обеспечивается в образце выглядит это:

protected void onSuccess(HttpServletRequest req, HttpServletResponse resp, Credential credential) 
    throws ServletException, IOException { 
resp.sendRedirect("/"); 
    } 

от объекта 'credential' Я могу ge t accessToken и refreshToken. Где id_token? Как его получить? Это не в «req».

ответ

0

Идентификаторы ID являются частью OpenID Connect, протокол построен поверх OAuth 2.0. Если вы следуете этому протоколу, он должен быть доступен в том же ответе, что и токен доступа. Вы можете увидеть документацию here.

Я не признал GoogleAuthorizationCodeFlow класс, который вы используете; оказывается, он устарел. Вы можете посмотреть на app engine section на странице, с которой вы ссылались, чтобы использовать текущие рекомендации Google.

+0

Я дал немного неправильно ссылку - это было для общего OAuth2 Новое соединение для GoogleAPI клиента Оттуда вы увидите, что класс GoogleAuthorizationCodeFlow не рекомендуется вообще. И моя проблема остается нерешенной ... – deer

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