Joh*_*n S 7 oauth-2.0 google-oauth oltu
我正在使用Apache的Oltu库,我正在尝试使用OAuth2通过Google进行身份验证.这是相关的代码:
OAuthAuthzResponse oar = OAuthAuthzResponse.oauthCodeAuthzResponse(request);
OAuthClientRequest clientReq = OAuthClientRequest
.tokenProvider(OAuthProviderType.GOOGLE)
.setClientId("<my-client-id>")
.setClientSecret("<my-client-secret>")
.setRedirectURI("https://test.example.com/oauthtest/oauth/google/auth")
.setCode(oar.getCode())
.setGrantType(GrantType.AUTHORIZATION_CODE)
.buildQueryMessage();
OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
// This call fails with the OAuthProblemException
OAuthAccessTokenResponse oAuthResponse = oAuthClient.accessToken(clientReq,
OAuthJSONAccessTokenResponse.class);
Run Code Online (Sandbox Code Playgroud)
我可以通过Facebook进行身份验证而不会出现问题,但无论出于何种原因,这都是失败的.我可以毫无问题地从OAuthAuthzResponse获取代码,因此我知道原始呼叫正在运行,但此后续呼叫失败.
编辑:我已经放弃使用Oltu并坚持使用HttpClient库并手动执行OAuth舞蹈的简单方法.它对我来说效果更好,我会推荐给任何想要可靠地对多个OAuth提供商进行身份验证的人.只有Twitter要求我使用Scribe.
Google 的 OAuth2 在 HTTP POST 方法的正文中发送参数,而不是查询字符串。
尝试用 buildBodyMessage() 方法替换 buildQueryMessage() 。
归档时间: |
|
查看次数: |
1631 次 |
最近记录: |