2

我正在尝试使用 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 或传递一个不应该存在的参数。

谢谢你的帮助!

4

2 回答 2

4

好的。所以我只是想出了一个使用Reddit API 的有趣的小怪癖:

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

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

反直觉的

于 2014-07-20T06:39:37.473 回答
3

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

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

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

如果您错过了一个片段,它将报告该错误。

于 2013-08-28T15:30:00.817 回答