Ваше описание проблемы, когда токен не генерируется для обычных пользователей, может иметь несколько причин. Давайте рассмотрим основные моменты, которые стоит проверить.
1. **Проверка учетных данных**: Убедитесь, что вы правильно вводите имя пользователя и пароль для обычного пользователя. Иногда ошибки могут быть вызваны опечатками или неверным именем пользователя.
2. **Пользовательская модель**: Проверьте, используется ли кастомная модель пользователя. Если вы используете свою модель пользователя, убедитесь, что она правильно настроена и совместима с Djoser и Django REST Framework.
3. **Настройки Djoser**: Проверьте ваши настройки Djoser, особенно настройки, касающиеся аутентификации. Убедитесь, что у вас правильно настроены `AUTHENTICATION_BACKENDS` и другие параметры. Например, убедитесь, что в `settings.py` у вас есть правильная конфигурация:
```python
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
# другие классы аутентификации
),
}
DJOSER = {
'LOGIN_FIELD': 'username', # если вы используете имя пользователя
# другие настройки Djoser
}
```
4. **Права доступа**: Проверьте, есть ли у вашего обычного пользователя права доступа к необходимым эндпоинтам. Пользователи должны иметь статус активных (например, поле `is_active` должно быть `True`).
5. **Настройки приложения**: Проверьте, правильно ли настроены модели пользователя и токенов в вашем приложении. Убедитесь, что они связаны между собой.
6. **Логи**: Проверьте логи вашего приложения или включите режим отладки, чтобы увидеть, есть ли дополнительные сообщения об ошибках, когда обычный пользователь пытается войти.
7. **Библиотеки и зависимости**: Убедитесь, что у вас установлены последние версии Django, Django REST Framework и Djoser, так как более старые версии могут содержать ошибки.
Если после проверки всех этих пунктов проблема не решается, то было бы полезно посмотреть на код, настройки и ошибки, которые возникают.