3

参考资料纯粹取自以下网站:-

我已经开发了 String Security OAuth2 Facebook 集成示例,现在我期待开发Security OAuth2 Google(以及后来的 Github)集成示例,其中将提供 AppID 和 Secret 以获取“access_token”和“refresh_token”等要使用访问受保护的资源,如 UserDetails 等。

因此,第一步是在http://code.google.com/apis/console上注册 App 。所以它给了我“客户端 ID”和“客户端密码”,我还配置了重定向 URI,完成!

现在我已经开始编写实际的 Apache OAuth 客户端,但我不确定我需要提供哪些参数(类似于我为 Facebook 集成提供的参数,这些参数在 facebook 上很容易获得,同时进行谷歌搜索,但没有找到谷歌) ,请给我建议应该为以下空白参数提供什么值-

我想我已经提供了足够的信息,所以任何指导/帮助/链接都值得赞赏。

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();
4

2 回答 2

1

有关完整示例,请参见此处:

http://mail-archives.apache.org/mod_mbox/oltu-user/201503.mbox/%3CA562FE5D3662044186474F4174F11DAE13044C639F@iowajhnex126.iowa.gov.state.ia.us%3E

于 2015-04-06T16:34:23.600 回答
0

我已经开发了Apache Oltu 和 Spring 集成示例,它在我的最后运行良好。

您需要按照@prtk_shah 的建议启用 Google+ API。谢谢。

您需要转到https://console.developers.google.com/project?authuser=0并单击您的项目,在我的情况下它是“apache-oltu”,在您打开的项目中找到选项“APIs and auth” --> API。搜索 Google+ API 并启用它。

在这里你应该可以看到这个屏幕。 在此处输入图像描述

所以,我将在下面修改你的代码,它应该是这样的:

(IMP) - 您的客户端 ID 应该是这样的,例如:(755670439314-jcumfghnkmcm72hf40beikvoatknstml.apps.googleusercontent.com),请确保它是正确的。Fyi - 由谷歌开发者控制台提供使用

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();

这是我在示例中得到的内容,只是想向您展示

在此处输入图像描述

希望这会有所帮助。

于 2015-04-17T18:38:29.883 回答