Создание токена должно быть реализовано в модели Пользователь .Вы можете установить значение по умолчанию для поля токена.
Добавить параметр по умолчанию в поле токена модели пользователя:
token = models.CharField (по умолчанию = tokenGenerator, max_length = 50)
tokenGenerator должен быть некоторой функцией, которая возвращает сгенерированный токен.
Во-вторых UserDetailSerializer должен быть отредактирован для получения токена, если это необходимо, но не required .
class UserDetailSerializer(serializers.ModelSerializer):
# You can also provide this default function like in model field
# for this token field
# default=tokenGenerator
token = serializers.CharField(max_length=50, required=False)
class Meta:
model = User
fields = (..., 'token')
extra_kwargs = ...
Теперь ваша модель получает сгенерированный токен для вновь созданного пользователя.
Пользователь должен автоматически войти в систему после регистрации, но это не так просто.
Вам необходимо указать, как выхочу общаться с API.Вы хотите токен, поэтому я думаю, что front должен запрашивать api, а токен должен использоваться из куки.
Если вы отправляете запрос из браузера, например.jQuery вам нужно получить ответ с сгенерированным токеном и сохранить его в куки.Ваш пост-ответ в DRF:
return Response ({'token': user_data.get ('token')}, status = status.HTTP_201_CREATED)
А теперьу вас есть еще несколько шагов:
- Прикрепить токен к каждому запросу браузера, который запрашивает API
- Создать класс аутентификации для проверки каждого запроса проверок на наличие правильного токена
- ...
Теперь, если вы прочитаете это, вы поймете, что это требует некоторой работы.Если вы это знаете и намеренно хотите создать, вам нужно создать упомянутый класс аутентификации .
В противном случае попробуйте использовать библиотеки типа oauth для django .Это обеспечит вам готовые классы для управления токенами.
Также, как упоминалось @ Ken4scholars, попробуйте использовать модель пользователя Django.У этого есть хорошие методы для проверки и т. Д., Не делая это сделано вручную.