2

OpenID 2.0 を OAuth 2.0 ログインに移行しています ( https://developers.google.com/accounts/docs/OpenID?hl=jaを参照)。新しい OpenID 2.0 識別子を、DB にある古い/既存の OpenID Connect 識別子にマップしたいと考えています。

アクセス トークンと openid_id の認証コードを交換するために、 https://www.googleapis.com/oauth2/v3/tokenエンドポイントを使用する OAuth 応答 (redirect_uri) を処理するところです。このフィールドは、DB 内の既存のユーザーを選択するために使用します。

ただし、https://www.googleapis.com/oauth2/v3/tokenへの呼び出しは「見つかりません」を返します。理由はありますか?

私は scribe 1.3.7 を使用しています。これが私のコードです。

OAuthService service = new ServiceBuilder().provider(Google2Api.class).apiKey(xxxxxxxx).apiSecret(yyyyyyyyyyyyyyy).callback(zzzzzzzzzzzzzzzzzzzz).scope("openid profile https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email").build();
Token accessToken = service.getAccessToken(null, new Verifier(oauth_verifier);
OAuthRequest request = new OAuthRequest(Verb.GET, "https://www.googleapis.com/oauth2/v3/token");
request.addQuerystringParameter("format","json");
request.addQuerystringParameter(OAuthConstants.REALM, "http://*.unclestock.com");
service.signRequest(accessToken, request); 
Response response = request.send(); 
// result -> not found
4

1 に答える 1

3

GEThttps://www.googleapis.com/oauth2/v3/token「見つかりません」を返すように要求します。リクエストには HTTP を使用する必要がありますPOST

コードの 3 行目を次のように更新して、もう一度試してください。

OAuthRequest request = new OAuthRequest(Verb.POST, "https://www.googleapis.com/oauth2/v3/token");

コードをアクセス トークンと ID トークンに交換する方法については、公式ドキュメントを参照してください。

于 2015-02-01T03:47:35.530 に答える