我正在尝试使用Devise&和Reddit实现oAuth。 omniauth-reddit gem。
似乎正在通过当地的网址和api key fine。
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以及托管网址(heroku),但无济于事。
所以现在我不明白我是否仍然只是给他们错误的URL或传递一个不应该存在的参数。
感谢您的帮助!
答案 0 :(得分:4)
确定。所以我刚用Reddit API想出了一个恼人的有趣的小怪癖:
原来,如果— invalid redirect_uri parameter
无效,它也会返回client ID
错误!很明显,我认为client_id
与secret
<强> NOPE 强>
相反,它是位于应用程序名称正下方的易于遗漏的ID。一旦你使用正确的ID,一切正常。 。
答案 1 :(得分:2)
OAuth服务器(几乎总是)要求您使用它们注册回调地址。你做到了吗?他们检查您在redirect_uri
发送的内容是否与您输入的内容相符。在Reddit:
刚试过它。您必须输入确切的回调网址:
http://127.0.0.1:3000/users/auth/reddit/callback
如果您错过了一个细分,则会报告该错误。