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

谷歌OAuth 2.0 invalid_client未经授权

汪正雅
2023-03-14

我用这个代码通过OAuth 2.0授权谷歌

oauthswift=OAuth2Swift(consumerKey:“984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09.apps.googleusercontent.com”,ConsumerCret:“AIzaSyD13MBv78yWIjl4TX9jOOT9AWuEkYdVSPQ”,授权URL:https://accounts.google.com/o/oauth2/v2/auth或者,accessTokenUrl:https://www.googleapis.com/oauth2/v4/token,响应类型:“代码”)

    let handle = oauthswift.authorize(
            withCallbackURL: URL(string: "com.googleusercontent.apps.984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09:/oauth")!,
            scope: "profile", state:"GOOGLE",
            success: { credential, response, parameters in
                print(credential.oauthToken)
                // Do your request
            },
            failure: { error in
                print(error.localizedDescription)
                print((error as OAuthSwiftError).errorUserInfo)
            }
    )

但结果总是失败

无法完成操作。(操作系统无线网络错误 -11。[“请求”: https://www.googleapis.com/oauth2/v4/token, “错误”: 错误域 = NSURL错误域代码 = 401 “invalid_client未经授权” 用户信息={响应正文={ “错误”: “invalid_client”,“error_description”: “未经授权” } , NSError失败URLKey.com=“内容编码” = gzip;“内容长度”= 81;“内容类型” = “应用程序/json;字符集 = UTF-8“;日期 = “星期四, 15 六月 2017 04:25:10 GMT”;到期 = “星期四, 15 六月 2017 04:25:10 GMT”;服务器 = 地面支持环境;变化=“起源,X起源”;“Www-身份验证” = “持有者领域=”https://accounts.google.com/“;“alt-svc” = “奎奇=\”:443\“;ma=2592000;v=\“38,37,36,35”“;“x-内容类型-选项” = nosniff;“x框架选项”=同一起源;“x-x-保护” = “1;模式=块“;}, OAuthSwiftError.response= { URL: https://www.googleapis.com/oauth2/v4/token } { 状态代码: 401, 标头 { “缓存控制” = “私有,最大期限 =0”;“内容编码” = gzip;“内容长度”= 81;“内容类型” = “应用程序/json;字符集 = UTF-8“;日期 = “星期四, 15 六月 2017 04:25:10 GMT”;到期 = “星期四, 15 六月 2017 04:25:10 GMT”;服务器 = 地面支持环境;变化=“起源,X起源”;“Www-身份验证” = “持有者领域=”https://accounts.google.com/“;“alt-svc” = “奎奇=\”:443\“;ma=2592000;v=\“38,37,36,35”“;“x-内容类型-选项” = nosniff;“x框架选项”=同一起源;“x-x-保护” = “1;模式=块“;} }, OAuthSwiftError.response.data=

你能纠正一下吗?

共有1个答案

勾炳
2023-03-14

您必须删除替换为CallbackURL"com.googleusercontent.apps.984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09:/oauth""your.bundle.id:/oauth2Callback"

来自演示 O奥特斯威夫特的评论:

对于googgle,redirect_uri应该与您的语法匹配:your.bundle.id:/oauth2Callback

在plist中,定义一个url模式:your.bundle.id

经过这些改变,我仍然有这个问题。找到解决方案:

我用空字符串删除了customerSecret,然后..它工作了。

希望以上我的回答对你有所帮助!

 类似资料:
  • 我正在尝试在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

  • 我们有一个托管在GCP中的应用程序,它使用GSuite API将用户从GSuite同步到我们的应用程序,并使用服务帐户将用户从GSuite同步到我们的应用程序,反之亦然。它过去工作得很好,直到最近我们的一些客户开始面临问题。 我们开始得到 401未经授权。客户端未经授权使用此方法检索访问令牌,或者客户端未被授权使用任何请求的作用域 我们的应用程序和授予的权限列表都没有更改。以下是授予的api访问权

  • 目前,我们正在开发一个处理谷歌日历的iPhone应用程序。需要将日历事件同步到服务器端。一切都很好。 但是对于推送通知,我们遵循这个过程 带参数 在标题中,我们正在发送 和内容类型:json 这里有人能帮我们解决这个问题吗?

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

  • 我有一个具有统一访问控制的Google云存储桶,我在权限中添加了“诱惑者”。它说该对象是公共的,但当我尝试打开链接时,仍会收到此消息:“匿名调用方没有storage.objects.get access to the Google Cloud storage object”错误代码为“401”。我希望任何用户都能够访问该链接。我该怎么做?提前谢谢! 向你问好本