Python 使用Django从Flask对用户进行身份验证

Python 使用Django从Flask对用户进行身份验证,python,django,flask,Python,Django,Flask,如何从Flask应用程序访问Django身份验证框架 我有一个Django应用程序和Flask应用程序在服务器上并行运行。两者都位于同一个域后面,但位于不同的路径后面,因此它们应该能够看到彼此的cookie 我正在使用Flask来运行一个简单的API微服务,在这里使用Django会有点过头。但是,为了防止滥用,我仍然希望Flask检查请求的cookie,看看它们是否来自仍然在Django应用程序中经过身份验证的用户。我不想在Flask中重新实现身份验证框架 从烧瓶内部访问Django设置相对简单

如何从Flask应用程序访问Django身份验证框架

我有一个Django应用程序和Flask应用程序在服务器上并行运行。两者都位于同一个域后面,但位于不同的路径后面,因此它们应该能够看到彼此的cookie

我正在使用Flask来运行一个简单的API微服务,在这里使用Django会有点过头。但是,为了防止滥用,我仍然希望Flask检查请求的cookie,看看它们是否来自仍然在Django应用程序中经过身份验证的用户。我不想在Flask中重新实现身份验证框架

从烧瓶内部访问Django设置相对简单。我只是在Flask脚本的顶部放置了类似的内容,以设置Django设置模块的路径:

sys.path.insert(0, <path to Django project>)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjangoproject.settings")

from django.conf import settings
sys.path.insert(0,)
setdefault(“DJANGO\u设置\u模块”、“mydjangoproject.SETTINGS”)
从django.conf导入设置

但是,我不确定如何更新Flask请求处理程序,以便从请求中提取正确的cookie,并使用Django的身份验证后端验证它们。我该怎么做呢?

在Django内部挖掘会话和身份验证中间件,似乎很容易将Flask的本机请求实例提供给它们。这似乎是为了我:

from importlib import import_module
from django.conf import settings
from django.contrib.auth.middleware import get_user

engine = import_module(settings.SESSION_ENGINE)
SessionStore = engine.SessionStore
session_key = request.cookies.get(settings.SESSION_COOKIE_NAME)
request.session = SessionStore(session_key)
user = get_user(request)
print(user.is_authenticated)

听起来是一个很好的应用程序。我从来没有在Django上实现过它,但它已经足够普遍,所以它可能相当简单。