Uhs*_*sac 3 python authentication django github python-social-auth
我在一个项目中使用 python-social-auth 通过 Github 对用户进行身份验证。我需要根据用户使用的链接重定向用户。为此,我在 url 上使用了 next 属性,并且我没有在 github 应用程序上声明任何重定向 url,也没有在 django 设置中声明任何重定向 url。
这是我用于链接的 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
但第一次之后链接就工作了。
我不知道问题出在哪里,希望有人能帮助我。谢谢
该库使用OAuth进行 GitHub 身份验证。
\n\n您必须提供回调 URL,因为 OAuth 过程会导致用户的浏览器在身份验证过程中实际离开您的站点。您发送到 GitHub 的回调 URL 用于将用户重定向回您的网站。
\n\n看起来 Python Social Auth已经为你处理了一些事情(强调我的):
\n\n\n\n\nGitHub
\n\nGithub 的工作方式与 Facebook (OAuth) 类似。
\n\n\n
\n- \n
在GitHub Developers注册一个新应用程序,将回调 URL 设置为
http://example.com/complete/github/替换example.com为您的域。- \n
填充
\n\nApp Id和App Secret设置中的Run Code Online (Sandbox Code Playgroud)SOCIAL_AUTH_GITHUB_KEY = \'\'\nSOCIAL_AUTH_GITHUB_SECRET = \'\'\n- \n
此外,\xe2\x80\x99s 还可以定义额外的权限:
\n\nRun Code Online (Sandbox Code Playgroud)SOCIAL_AUTH_GITHUB_SCOPE = [...]\n
棘手的一点是让它在您的开发机器上运行。
\n\n在主机文件中将域设置为 127.0.0.1应该可以,如下所示
\n\n127.0.0.1 example.com\nRun Code Online (Sandbox Code Playgroud)\n\n但一旦投入生产,请务必对此进行评论!
\n\n您可能还想浏览GitHub 的 OAuth 文档。使用库固然很棒,但如果您了解底层技术,问题就会减少。
\n