【问题标题】:Mailchimp "invalid_grant" errorMailchimp“invalid_grant”错误
【发布时间】:2017-01-02 02:20:14
【问题描述】:

我正在尝试使用 Mailchimp 的 OAuth 完成身份验证 实施,并且我的访问令牌请求正在获得 “invalid_grant”错误。

使用 ruby​​ HTTParty gem,我将数据发布到 Mailchimp:

  url = 'https://login.mailchimp.com/oauth2/token'
  result = HTTParty.post(url,
                         body: {
                            grant_type: 'authorization_code',
                            client_id: ENV["MAILCHIMP_ID"],
                            client_secret: ENV["MAILCHIMP_SECRET"],
                            code: auth_hash.credentials.token,
                            redirect_uri: 'https://requestb.in/1jrbjmi1',
                         },
                         headers: {
                            'Accept': 'application/json'
                         })

地点:

  • grant_type 是 'authorization_code'
  • client id & secret 是我设置应用程序时给我的值 在 Mailchimp
  • code 是从(成功的)OAuth 返回给我的令牌 身份验证

有人遇到过这种错误吗?知道如何解决吗?

【问题讨论】:

  • 你发现了吗? :D

标签: ruby-on-rails ruby oauth mailchimp


【解决方案1】:

我今天也遇到了类似的问题,我的结论如下:

  1. 不幸的是,MailChimp(以及许多其他提供 OAuth2 端点的公司)不提供额外的错误信息 - invalid_grant 显示在许多不同的场景中。

  2. 在我的情况下,问题是由 redirect_uri 的细微差别引起的 - 我没有在令牌请求中包含完全匹配的内容。它很严格,必须包含查询参数并且也必须匹配。

  3. 不幸的是,包含错误的授权码会导致与上述相同的错误。

【讨论】:

  • 遇到同样的问题,但仍然无法确定是什么原因造成的。在这两种情况下发送完全相同的重定向 URI、有效的客户端 ID/秘密以及从授权中接收到的确切代码。超级无用的错误信息...
【解决方案2】:

invalid_grant 的问题是由于在重定向 URI 上使用 encodeURIComponent,然后将此编码值传递给请求对象的配置而引起的。这实质上会导致双重编码,从而导致重定向 URI 不匹配并导致此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多