【问题标题】:Cannot authorise with reddit via oauth2无法通过 oauth2 向 reddit 授权
【发布时间】:2014-03-03 13:07:20
【问题描述】:

我正在尝试使用 reddit 实现 oauth2,但我在每一步都遇到了问题,我使用了一个 oauth 库作为 codeigniter,但这不起作用,所以我决定放弃它并尝试自己做。

这是授权请求,如果我没有在 reddit 上登录,我会得到登录页面,如果我登录或登录后会出现错误。

https://ssl.reddit.com/api/v1/authorize?response_type=code&client_id=myclientid&scope=identity&redirect_uri=http%3A%2F%2Fmydomain.com%2Fregister

它会将我重定向回这里:

mydomain.com/register?state=None&error=invalid_request

我找不到任何有关 Reddit oauth 实施的有用文档。

【问题讨论】:

    标签: php codeigniter oauth reddit


    【解决方案1】:

    在 github wiki 上有一些关于 reddit's OAuth2 的信息,以获取 reddit 的源代码。您似乎在初始请求中缺少 state 参数。

    state - 如果用户授予访问权限,您可以将值传递到将包含在重定向回您的授权页面中。这对于防止跨站点请求伪造 (CSRF) 很有用。通过选择(并记住)一个足够随机的值,您可以确保返回您网站的请求是通过访问您生成的授权 URL 发起的。

    (引用的 wiki 信息不正确,实际上需要 state;我会尽快更新 wiki)

    【讨论】:

    • 谢谢凯米奇!似乎工作得很好,我在其他地方读过 stackoverflow Reddit 的 oAuth 实现有点独特,我可能会遇到任何其他怪癖吗?在 Reddit 成功授权后,我尝试调用 oauth.reddit.com/api/v1/me,并设置了授权码,在通过 POST 和 GET 尝试此操作后,我收到此错误:403 Forbidden Request denied by Administrative rules
    • 问题已排序,我没有正确发送 Authorization: 标头。对于遇到问题的其他人,我强烈建议您阅读以下内容:reddit.com/r/redditdev/comments/197x36/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多