【发布时间】:2015-01-28 18:14:03
【问题描述】:
我在 Django 项目中的会话遇到了一个大问题。
后端托管在.my-domain.org,前端使用.front-end.com 后端的REST API。未来可能会出现完全不同域的其他前端。
我在使用Django提供的会话框架时如何处理这种情况? SESSION_COOKIE_DOMAIN 似乎只允许在 one 子域上设置会话 cookie。结果是,如果我希望能够在.my-domain.org(即SESSION_COOKIE_DOMAIN = None)登录,那么当它调用API 端点时,我无法从.front-end.com 接收回会话cookie。另一方面,将SESSION_COOKIE_DOMAIN 设置为.front-end.com 会阻止我连接到站点管理员。这种情况当然也受到SESSION_COOKIE_PATH的影响...
我们非常欢迎任何帮助。我很确定我不是第一个需要带有会话身份验证的 REST API 才能从外部域访问的人。
【问题讨论】:
-
我对此没有简短的回答,但您要解决的问题可能是在“单点登录”(或“SSO”)领域......这些可能帮助stackoverflow.com/q/4662348/202168code.google.com/p/django-sso
-
你有使用会话框架吗?你会遇到 CORS/JSONP 的挑战,你真的要介绍 CSRF 的挑战吗?如果可能,我建议您查看 OAuth 2 或
TokenAuthentication。
标签: django session cookies django-rest-framework