7

私は 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);

問題なく Facebook 経由で認証できますが、何らかの理由で失敗しています。問題なく OAuthAuthzResponse からコードを取得できるので、元の呼び出しが機能していることはわかっていますが、このフォローアップ呼び出しは失敗しています。


編集: Oltu の使用をあきらめ、HttpClient ライブラリを使用して OAuth ダンスを手動で実行するというより単純なアプローチに固執しました。それは私にとってよりうまく機能し、複数の OAuth プロバイダーに対して確実に認証したい人にはお勧めします。Scribeを使用する必要があったのは Twitter だけでした。

4

2 に答える 2