Django中simple-sso登录遇/authorize路径404错误求助
核心原因
你遇到的404错误是因为请求的/authorize/?token=路径没有对应的URL映射。你的服务端SSO端点都挂载在/server/前缀下,正确的授权路径应该是/server/authorize/?token=...,而非直接访问/authorize/。
修复步骤
1. 修正Server实例的初始化参数
当前你创建Server对象时未传入密钥配置,这会导致服务端无法正常处理SSO请求。修改urls.py中的初始化代码:
test_server = Server( private_key=settings.SSO_PRIVATE_KEY, public_key=settings.SSO_PUBLIC_KEY )
2. 确认URL路径的正确性
你的URL配置中,服务端的所有端点都通过^server/前缀映射,因此:
- 服务端授权端点的完整路径是
http://127.0.0.1:8000/server/authorize/ - 你的
settings.py中SSO_SERVER='http://127.0.0.1:8000/server'配置正确,客户端会自动拼接出正确的授权路径,无需手动修改
3. 验证URL匹配规则
检查urls.py中的正则表达式配置:
re_path(r'^server/', include(test_server.get_urls())),
该配置正确,会将所有以server/开头的请求转发给SSO服务端处理。如果是手动测试,请访问/server/authorize/?token=xxx而非/authorize/。
4. 补充缺失的站点配置
django.contrib.sites需要明确的站点ID才能正常工作,在settings.py中添加:
SITE_ID = 1
5. 重启服务器
修改配置后重启Django开发服务器,确保所有变更生效。
测试验证
完成上述修改后触发SSO登录流程,客户端会自动跳转到/server/authorize/路径,此时404错误应该会消失。
内容的提问来源于stack exchange,提问作者Daniyar Sarsenov
相关产品推荐
相关产品推荐

