Django Rest Framework - общий подход к работе с гостевыми пользователями

Я пытаюсь реализовать обработку гостевых (анонимных) пользователей в моем Django/React приложении с помощью DRF, но я не уверен, как именно действовать. В конечном итоге я хочу, чтобы, когда незарегистрированный пользователь заходит на мою домашнюю страницу, он мог выполнять ограниченные CRUD операции, например, создавать максимум 10 задач, а когда он решит зарегистрироваться, эти ограничения будут сняты.

Некоторое время назад я сделал такое же приложение, но только на Django, и то, как я его настроил, заключалось в том, что когда анонимный пользователь посещал страницу, создавался новый пользователь без пароля. Для этого я использовал следующую функцию:

def getUser(self):

        if not self.request.user.is_authenticated:
            ip = get_client_ip(self.request)

            if UserAccount.objects.filter(ip_address=ip).exists():
                return UserAccount.objects.get(ip_address=ip)

            random_username = f"{randomString(10)}_guest"
            random_email = f"{randomString(5)}_guest@example.com"

            guest_user = UserAccount.objects.create(
                username=random_username,
                email=random_email,
                ip_address=ip,
                is_active=False,
            )

            return guest_user
        else:
            return request.user

Позже, когда этот пользователь отправил форму регистрации, я использовал ту же функцию для получения этого "гостевого" пользователя и обновил остальные поля модели (email...) и установил его пароль.

Теперь, возвращаясь к первоначальному вопросу, как мне сделать то же самое с rest framework? Я также просматривал документацию DRF, и для аутентификации вам нужны эти токены, но можете ли вы даже сгенерировать токен для анонимного пользователя, чтобы он мог выполнять CRUD?

Выпьем!

Вернуться на верх