Как получить повар ie после входа в систему входа в тот же домен? - PullRequest
0 голосов
/ 24 апреля 2020

Я создаю MiddleWare для аутентификации пользователя (используя стороннюю систему входа в систему того же домена) перед доступом к любому представлению. В методе process_view я проверяю request.cookies, чтобы увидеть куки и проверить, есть ли у cook ie user_id, который будет установлен после входа пользователя в систему входа в 3-ю часть, имеющую тот же домен, если да, тогда я разрешу ему доступ к представлениям в противном случае. Я перенаправляю его на страницу входа. Теперь проблема в том, что мое приложение Django перенаправляет на страницу входа в систему, и когда я вхожу в систему входа в систему, я вижу инструменты разработчика и замечаю, что cook ie устанавливается успешно, но cook ie не возвращается в запросе. Я искал решение этой проблемы Я получил это решение при переполнении стека - Python Запросы получают значения куки после аутентификации , но, к сожалению, только эти возвращаемые user_data аутентифицируются в cook ie, и для него установлено значение fla sh даже после успешного входа в систему. Вот примерный код моего Middleware-

import json

from django.http import HttpResponseRedirect
import requests


class UserAuthMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        return response

    def process_view(self, request, view_fund, view_args, view_kwargs):
        r = requests.get("https://example.com/login/")
        print(r.cookies)
        if not request.user.is_authenticated:
            response = HttpResponseRedirect("https://example.com/login/?next = "+request.build_absolute_uri('?'))
            return response

Мое промежуточное ПО settings.py -

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    # "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    "myapp.middleware.authentication.UserAuthMiddleware",
]

, пожалуйста, помогите !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...