python-social-auth和github,我有这个错误" redirect_uri必须匹配这个应用程序的注册回调URL"

时间:2014-04-29 09:02:52

标签: python django github python-social-auth

我在项目中使用python-social-auth来使用Github对用户进行身份验证。 我需要根据用户使用的链接重定向用户。要做到这一点,我使用网址上的下一个属性,并且我没有在我的django设置中在我的github应用程序上声明任何重定向网址。

这是我用于链接的href属性:{% url 'social:begin' 'github' %}?next={% url 'apply' j.slug %}

我第一次点击它时,我会在网址字段中将此错误重定向到我的主页:http://127.0.0.1:8000/?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=Ui1EOKTHDhOkNJESI5RTjOCDEIdfFunt

但是在第一次链接工作之后。

我不知道问题出在哪里,我希望有人可以帮助我。感谢

3 个答案:

答案 0 :(得分:4)

此库使用OAuth进行GitHub身份验证。

必须提供回调网址,因为OAuth流程会导致用户的浏览器实际离开您的网站作为身份验证过程的一部分。您发送给GitHub的回调网址用于将用户重定向回您的网站。

它看起来像Python Social Auth handles some of this for you,但是(强调我的):

  

GitHub的

     

Github与Facebook(OAuth)类似。

     
      
  • GitHub Developers注册一个新应用,将回调网址设置为http://example.com/complete/github/,用您的域名替换example.com

  •   
  • 在设置中填写App IdApp Secret值:

    SOCIAL_AUTH_GITHUB_KEY = ''
    SOCIAL_AUTH_GITHUB_SECRET = ''
    
  •   
  • 还可以使用以下方法定义额外权限:

    SOCIAL_AUTH_GITHUB_SCOPE = [...]
    
  •   

棘手的一点是让它在您的开发机器上运行。

在您的hosts file中将域名设置为127.0.0.1应该可以正常运行,就像这样

127.0.0.1   example.com

但请务必在投入生产后对此进行评论!

您可能还想浏览GitHub's OAuth documentation。使用图书馆很棒,但如果您了解基础技术,那么您的问题会更少。

答案 1 :(得分:0)

有效

在您的主机文件中将域设置为127.0.0.1应该可以,

127.0.0.1 example.com

答案 2 :(得分:0)

我确实使用http://127.0.0.1:8000/

解决了登录重定向URI不匹配的问题
相关问题