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?
Выпьем!