Как мне получить JWT token без активации пользователя?

Мне нужно получить JWT без активации в админке юзера. Не пойму как это сделать.

settings.py
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        # 'rest_framework.permissions.IsAdminUser',
        'rest_framework.permissions.AllowAny',
    ),
    'PAGE_SIZE': 10,
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        #'rest_framework.authentication.TokenAuthentication',
        #'rest_framework.authentication.BasicAuthentication',
        #'rest_framework.authentication.SessionAuthentication',

    ),
    'DEFAULT_PAGINATION_CLASS':
    'rest_framework_json_api.pagination.PageNumberPagination',
    #'TEST_REQUEST_DEFAULT_FORMAT': 'json',

}


JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=2),
    'JWT_ALLOW_REFRESH': True,
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7)  # default
}


DJOSER = {
    'SEND_ACTIVATION_EMAIL': True,
    'SEND_CONFIRMATION_EMAIL': True,
    'ACTIVATION_URL': 'auth/activate/{uid}/{token}/',
    'PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND': True,
    'PASSWORD_RESET_CONFIRM_URL': 'auth/reset/confirm/{uid}/{token}/',
    'TOKEN_MODEL': None
}

SIMPLE_JWT = {
    'AUTH_HEADER_TYPES': ('JWT' ,),
}


urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/base-auth/', include('rest_framework.urls')),
    path('api/v1/shops/', include('shop.urls')),
    path('api/v1/auth/', include('djoser.urls')),
    path('api/v1/auth_token/', include('djoser.urls.authtoken')),

    path('auth/', include('djoser.urls')),
    path('api-auth/', include('rest_framework.urls')),
    path('auth/', include('djoser.urls.jwt')),

    path('', YozjkeView.as_view()),
]


views.py

class YozjkeView(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request):
        return Response({'key': 'GRIBAN YSATIU'})


Через POSTMAN я создаю пользователя
607a9e5b1f6c0719179305.png

Далее если пытаюсь получить JWT токен сразу то получаю ошибку, что для начала нужно его активировать

{
    "detail": "No active account found with the given credentials"
}


После активации пользователя в админке DRF я делаю еще один запрос и получаю уже сам токен

607a9ef0eb7d7703867098.png

Как мне получить токен пользователя не активируя его в админке DRF?
  • Вопрос задан
  • 703 просмотра
Пригласить эксперта
Ответы на вопрос 1
@reqww
Можешь переписать код библиотеки и убрать проверку is_active=True, можешь написать вью, коттрая будет активировать пользователя, можешь в модели пользователя поставить стандартное значение поля is_active=True
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы