gpt4 book ai didi

java - 无法用 OAuth 身份验证代码交换访问 token

转载 作者:行者123 更新时间:2023-11-30 06:10:41 25 4
gpt4 key购买 nike

我只是想制作一个简单的应用程序,但我什至无法通过用户身份验证。我正在使用适用于 Java 的 Google OAuth 客户端库。
这些是我当前正在采取的步骤:

  1. 启动本地Web服务器以监听OAuth身份验证后的环回响应。
  2. 生成身份验证 URL:

    String url = new AuthorizationCodeRequestUrl(AUTH_URL, CLIENT_ID)   
    .setScopes(scopes) // Contains https://www.googleapis.com/auth/drive.readonly
    .setRedirectUri(LOCALHOST + r.getPort()) // Port of local web server
    .build();
  3. 使用 URL 来验证帐户。
  4. Google 返回授权码。
  5. 将授权代码交换为访问 token 。

    TokenResponse token = new AuthorizationCodeTokenRequest(...)
    .setRedirectUri("http://localhost") // <--
    .setClientAuthentication(getClientAuth()) // ClientParametersAuthentication object
    .execute();

这就是我的问题发生的地方。无论我为 redirect_uri 输入什么值,我总是得到{"error":"redirect_uri_mismatch","error_description":"Bad Request"} 作为返回。
在 Google 中搜索该错误,每个结果都表明这是因为我发送的 redirect_uri 未在 API 控制台中注册。
当我下载凭证 json 文件时,redirect_uris 部分包含 "urn:ietf:wg:oauth:2.0:oob","http://localhost",但它是无论我输入什么,都是同样的错误。

我转到项目的“凭据”部分来修复它,但由于这是一个已安装的应用程序,因此为该项目创建凭据给了我没有选项来设置任何重定向 uri。访问更改redirect_uris的唯一方法是创建“Web应用程序”的凭据,但这不是Web应用程序,我没有可以重定向到的域。

所以我陷入困境,redirect_uri 选项对我不可用,并且我使用的值不起作用,老实说我不知道​​还能尝试什么。我可以采取什么步骤来解决这个问题?

最佳答案

事实证明,即使不用于检索访问 token ,也必须将相同的 redirect_uri 用于身份验证代码和访问 token 。

关于java - 无法用 OAuth 身份验证代码交换访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com