【问题标题】:Using django with legacy authentication cookies将 django 与旧的身份验证 cookie 一起使用
【发布时间】:2010-11-01 19:20:57
【问题描述】:

我在自制 python 框架中有一个大型代码库。我将逐步将代码移至 Django,但同时需要支持通过旧系统登录。旧系统在用户登录后使用 cookie 来识别用户。

我不希望用户通过 Django 登录,但我确实希望能够使用 @login_required 以及依赖 Django 身份验证系统的几个应用程序,例如 admin、django-tagging 和 django-cmets .

集成两个身份验证系统的最佳方式是什么?两个代码库都在同一个 python 进程中运行(通过一个 wsgi 中间件,根据请求切换应用程序),并且可以根据需要相互加载模块。

【问题讨论】:

    标签: django legacy-code django-authentication


    【解决方案1】:

    让它工作的最简单方法可能是在 Django 中使用自定义身份验证中间件。

    在 Django 中有几个示例身份验证中间件:http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/middleware.py

    【讨论】:

    • 但是对于像 django-tagging 这样的现成应用程序的支持呢?那些期望 request.user 表现得像 django 用户模型。
    • @GDorn:要使其与 Django 的其余部分兼容,您的中间件应将 request.user 设置为 Django 中的有效用户。让中间件从遗留认证系统中读取cookie,并让它在request.user中存储一个User对象
    猜你喜欢
    • 2018-04-22
    • 1970-01-01
    • 2011-01-19
    • 2013-02-10
    • 2020-03-12
    • 2018-05-15
    • 2011-11-25
    • 2017-05-10
    • 2015-07-12
    相关资源
    最近更新 更多