You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF集成GitHub登录遇404错误:无法跳转认证页面求助

解决Django Rest Framework集成GitHub认证时的404(Backend not found)问题

问题诊断

从错误信息和代码来看,核心问题是模板中调用认证后端时使用了错误的后端名称,导致social_django无法识别对应的OAuth2后端,从而抛出404错误。

具体修改步骤

1. 修正模板中的认证后端名称

模板oauth.html里的URL标签使用了github-oauth2作为后端标识,但social_core.backends.github.GithubOAuth2对应的正确标识是github。修改模板内容:

<a href="{% url "social:begin" "github" %}">Github</a>

2. 确认核心配置正确性

检查settings.py中的关键配置是否到位:

  • INSTALLED_APPS已包含social_django
  • AUTHENTICATION_BACKENDS已添加social_core.backends.github.GithubOAuth2
  • 已正确配置SOCIAL_AUTH_GITHUB_KEY和SOCIAL_AUTH_GITHUB_SECRET

3. 确认URL配置有效性

当前urls.py中已正确引入social_django的URL规则,无需修改:

router = SimpleRouter()
router.register(r'book', BookViewSet)

urlpatterns = [
    path("admin/", admin.site.urls),
    re_path('', include('social_django.urls', namespace='social')),
    path('auth/', auth)
]

urlpatterns += router.urls

错误信息回顾

页面未找到(404)
Backend not found
请求方法: GET
请求URL: http://127.0.0.1:8000/login/github-oauth2/
引发者: social_django.views.auth
使用books.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
admin/
login/str:backend/ [name='begin']
当前路径login/github-oauth2/匹配了最后一个模式。

内容的提问来源于stack exchange,提问作者I V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:18:19