如何获取Google Oauth2 id_token

时间:2016-07-20 20:16:33

标签: google-app-engine

我正在制作GAE java app

授权看起来像

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

回调servlet取自此处: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("/");
  }

来自'凭证'对象我可以获得accessToken和refreshToken。 id_token在哪里?如何获得它?它没有在' req'任

1 个答案:

答案 0 :(得分:0)

ID令牌是OpenID Connect的一部分,OpenID Connect是在OAuth 2.0之上构建的协议。如果您遵循该协议,则它应该与访问令牌在相同的响应中可用。您可以看到文档here

我不认识你正在使用的GoogleAuthorizationCodeFlow课程;事实证明它已被弃用。您可能需要查看您关联的网页上的app engine section,以使用Google当前的推荐。