蟒蛇 - 社会 - 身份验证和github上,我有这样的错误“REDIRECT_URI必须匹配该应用

2019-10-20 01:29发布

我使用的一个项目中的python-社会权威性与Github上对用户进行认证。 我需要重定向取决于他们所使用的链路上的用户。 要做到这一点我使用的URL上的下一个属性,我并没有宣布我的github上的应用程序没有在我的Django设置任何重定向URL。

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

而我第一次点击它,我重新导向到我的网页上的这个错误在URL字段: 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

但后第一时间联系工作。

我不知道哪里出了问题,我希望有人能帮助我。 谢谢

Answer 1:

该库使用的OAuth的认证GitHub的。

必须提供一个回调URL,因为OAuth的过程会导致用户的浏览器实际上离开你的网站作为认证过程的一部分。 您发送到GitHub上的回调URL用于将用户重定向网站。

它看起来像Python社会验证处理一些这方面给你 ,虽然(重点煤矿):

GitHub上

Github上的工作原理类似于Facebook的(OAuth的)。

  • 注册一个新的应用程序GitHub的开发者 , 设置回调URL到http://example.com/complete/github/更换example.com与您的域名

  • 填写App IdApp Secret的设置值:

     SOCIAL_AUTH_GITHUB_KEY = '' SOCIAL_AUTH_GITHUB_SECRET = '' 
  • 此外,它也可以定义额外权限:

     SOCIAL_AUTH_GITHUB_SCOPE = [...] 

棘手的位得到这个在您的开发机器上工作。

在您的域名设置为127.0.0.1 主机文件应该工作,这样的事情

127.0.0.1   example.com

但要确保你一旦投入生产评论此像了!

你也可以浏览GitHub的OAuth的文档 。 使用库是伟大的,但如果你了解底层的技术,你会少的问题。



Answer 2:

该工作

在您的主机文件域设置为127.0.0.1应该工作,这样的事情

127.0.0.1 example.com



文章来源: python-social-auth and github, I have this error “The redirect_uri MUST match the registered callback URL for this application”