Django Custom Auth Backend is_authenticated всегда false - PullRequest
0 голосов
/ 18 октября 2018

Я пишу приложение, в котором пользователь может войти в систему с 3 различными данными: клиентский ключ, имя пользователя, пароль.Каждый клиентский ключ ведет к отдельной базе данных.поэтому я написал для нее обычный пользовательский бэкэнд, но столкнулся с проблемой, которую не могу действительно решить.

Аутентификация работает нормально, пока я жестко кодирую ключ пользователя в функции get_user с помощью return User.objects.using('505473').get(pk=user_id), но когда я этого не делаю, я всегдаложь в моих шаблонах, когда я звоню {% if user.is_authenticated %}.

Можно ли указать, какую БД он должен вызвать при вызове {% if user.is_authenticated %} / get_user?

customAuthBackend:

class CustomAuthBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        user = User.objects.using(request.POST['customerkey']).get(username=username)
        if user is not None:
            return user
    def get_user(self, user_id):
        try:
            return User.objects.using('505473').get(pk=user_id)
        except User.DoesNotExist:
            return None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...