OpenId 连接端点 returns 'not found'
OpenId Connect endpoint returns 'not found'
我正在将 OpenID 2.0 迁移到 OAuth 2.0 登录(参见 https://developers.google.com/accounts/docs/OpenID?hl=ja)。我想将新的 OpenID 2.0 标识符映射到我数据库中的 old/existing OpenID Connect 标识符。
我正在处理 OAuth 响应 (redirect_uri),我想在其中使用 https://www.googleapis.com/oauth2/v3/token 端点,以交换访问令牌和 openid_id 字段,我将使用它来 select 我数据库中的现有用户。
不过,我的电话是https://www.googleapis.com/oauth2/v3/tokenreturns'not found'。知道为什么吗?
我使用的是 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
GET
请求 https://www.googleapis.com/oauth2/v3/token
return 'Not Found'。您需要为请求使用 HTTP POST
。
将代码的第 3 行更新为以下内容,然后重试:
OAuthRequest request = new OAuthRequest(Verb.POST, "https://www.googleapis.com/oauth2/v3/token");
您可以在 official docs.
中阅读有关交换访问令牌和 ID 令牌代码的更多信息
我正在将 OpenID 2.0 迁移到 OAuth 2.0 登录(参见 https://developers.google.com/accounts/docs/OpenID?hl=ja)。我想将新的 OpenID 2.0 标识符映射到我数据库中的 old/existing OpenID Connect 标识符。
我正在处理 OAuth 响应 (redirect_uri),我想在其中使用 https://www.googleapis.com/oauth2/v3/token 端点,以交换访问令牌和 openid_id 字段,我将使用它来 select 我数据库中的现有用户。
不过,我的电话是https://www.googleapis.com/oauth2/v3/tokenreturns'not found'。知道为什么吗?
我使用的是 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
GET
请求 https://www.googleapis.com/oauth2/v3/token
return 'Not Found'。您需要为请求使用 HTTP POST
。
将代码的第 3 行更新为以下内容,然后重试:
OAuthRequest request = new OAuthRequest(Verb.POST, "https://www.googleapis.com/oauth2/v3/token");
您可以在 official docs.
中阅读有关交换访问令牌和 ID 令牌代码的更多信息