当前位置: 首页 > 知识库问答 >
问题:

谷歌OAuth2游乐场返回“未经授权的客户端”

西门马鲁
2023-03-14
    clientId = xxxxxx
    clientSecret = xxxxxxxx
    applicationHost = xxxxxxxxx

我的授权码请求:

   OAuthClientRequest oAuthClientRequest = OAuthClientRequest
                .authorizationProvider(OAuthProviderType.GOOGLE)
                .setResponseType("code")
                .setClientId(clientId)
                .setParameter("access_type", "online")
                .setRedirectURI(applicationHost + "auth/google/callback")
                .setScope("https://www.googleapis.com/auth/plus.login")
                .buildQueryMessage();

        response.sendRedirect(oAuthClientRequest.getLocationUri());

我正在用这个得到授权码。但是每当我使用此代码发送access_token请求时,我都会得到一个错误。(代码400)

    OAuthClientRequest oAuthClientRequest = OAuthClientRequest
            .tokenProvider(OAuthProviderType.GOOGLE)
            .setGrantType(GrantType.AUTHORIZATION_CODE)
            .setClientId(clientId)
            .setClientSecret(clientSecret)
            .setParameter("access_type", "online")
            .setRedirectURI(applicationHost + "auth/google/callback")
            .setCode(code)
            .buildQueryMessage();

    GitHubTokenResponse oAuthResponse = oAuthClient.accessToken(
            oAuthClientRequest, GitHubTokenResponse.class);
    return oAuthResponse.getAccessToken();
    HTTP/1.1 400 Bad Request
    Alternate-protocol: 443:quic
    Content-length: 37
    X-xss-protection: 1; mode=block
    X-content-type-options: nosniff
    X-google-cache-control: remote-fetch
    -content-encoding: gzip
    Server: GSE
    Via: HTTP/1.1 GWA
    Pragma: no-cache
    Cache-control: no-cache, no-store, max-age=0, must-revalidate
    Date: Mon, 17 Feb 2014 09:03:52 GMT
    X-frame-options: SAMEORIGIN
    Content-type: application/json
    Expires: Fri, 01 Jan 1990 00:00:00 GMT
    {
       "error": "unauthorized_client"
    }

共有1个答案

湛文乐
2023-03-14

这个答案可能有助于我如何在没有用户干预的情况下授权应用程序(web或已安装)?(规范?)

 类似资料:
  • 我正在编写一个类,用于创建对BigQuery和Google云存储的授权。 在过去,我曾使用,但已被弃用。我试图使用,但我发现它只允许我使用,而我需要。 我知道可以从转换为,但我不知道如何将它们转换成相反的方向(转换为)。例如,我像这样创建连接: 有人能给我指明如何实现这一目标的方向吗? 谢谢!

  • 我正在尝试从我的 ASP MVC Web 应用程序在 C# 中设置 Office 365 集成,为此我使用的是 Outlook Mail REST API(客户端版本)。我一直在这里使用 API 参考:https://msdn.microsoft.com/office/office365/APi/mail-rest-operations 我可以登录Office 365,并获取令牌,然后读取邮件文件

  • 我用这个代码通过OAuth 2.0授权谷歌 oauthswift=OAuth2Swift(consumerKey:“984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09.apps.googleusercontent.com”,ConsumerCret:“AIzaSyD13MBv78yWIjl4TX9jOOT9AWuEkYdVSPQ”,授权URL:https:/

  • 我正在尝试在Android设备上使用一个简单的电话差距应用程序。因此,我遵循了所有步骤,创建了一个项目,该应用程序成功地与GCM服务器通信,并使用我的项目编号获取注册ID。 问题是我不能从服务器端与GCM通信。我最初是在Perl中这样做的,但是即使是GCM文档中的curl example也返回“401”。 他们的API访问密钥被列入了白名单,我试着删除它并创建新的几次。甚至尝试使用浏览器密钥而不是

  • 我是第一次使用谷歌API,我在尝试下载文件对象“下载Url”属性的文件时遇到问题。我当前正在使用“服务帐户”选项以及关联的服务帐户电子邮件和 P12 证书。 但是,URL返回“https://doc-08-68-docs.googleusercontent.com/docs/securesc/bteg36c1tifegg79l2ov17og25612tet/gk7kn52ahe4d0to7d6ht

  • 我的应用程序中出现“未授权”错误。我使用的是Spring Security和oauth2。我的客户端和用户存储在数据库中。当我开始使用数据库中的客户端时,PostMan中出现了错误401。客户端正在保存到数据库中,但当我想从localhost:8080/oauth/token获取令牌访问时,仍然出现错误。以下是我的来源: 授权服务器配置: public class AuthorizationSer