【问题标题】:Invalid redirect_uri parameter for Reddit APIReddit API 的 redirect_uri 参数无效
【发布时间】:2013-08-30 15:09:06
【问题描述】:

我正在尝试使用 Devise 和 omniauth-reddit gem 来实现 oAuth。

似乎可以很好地传递本地 url 和 api 密钥。

https://ssl.reddit.com/api/v1/authorize?response_type=account&client_id=API_KEY&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fusers%2Fauth%2Freddit%2Fcallback&scope=identity

但是我得到的回应是:

forbidden (reddit.com)

you are not allowed to do that
— invalid redirect_uri parameter.

我尝试将 redirect_uri 设置为 127.0.0.1:3000 以及托管 url(heroku),但无济于事。

所以现在我不明白我是否仍然只是给他们提供了错误的 URL 或传递了一个不应该存在的参数。

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails api devise oauth-2.0 reddit


    【解决方案1】:

    好的。所以我只是想出了一个与 Reddit API 相关的烦人有趣的小怪癖:

    事实证明,如果client ID 无效,它也会返回— invalid redirect_uri parameter 错误!显然,我认为client_idsecret 是一回事

    不行

    相反,它是您的应用名称正下方容易错过的 ID。使用正确的 ID 后,一切正常。 . .

    【讨论】:

    • 注意:如果您曾经将“秘密”用作 ID,则您的秘密可能不再是秘密,您应该创建一个新的 OAuth2 客户端来生成新的 ID 和秘密。跨度>
    【解决方案2】:

    OAuth 服务器(几乎总是)要求您向它们注册回调地址。你这样做了吗?他们会检查您在redirect_uri 中发送的内容是否与您输入的内容相符。在 Reddit:

    刚刚测试过。您必须输入准确的回调 URL:

    http://127.0.0.1:3000/users/auth/reddit/callback

    如果你错过了一个片段,它会报告那个错误。

    【讨论】:

    • 当然,正如我在问题中指出的那样,我尝试将 redirect_uri 都设置为 127.0.0.1:3000projectx.com
    • 抱歉,不清楚。您是否尝试过使用完全限定的 URL?斜杠?有时服务器对比较很挑剔。
    • +1 表示站点重定向 uri 必须与正在发送的内容匹配。我完全发送了我的新 uri,但忘记更新 reddit 上的偏好。
    猜你喜欢
    • 2016-04-22
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多