через rest_ramework_simplejwt?
Метод
@pytest.fixture
def authenticated_user(client_api, create_user):
client_api.force_login(create_user)
return client_api
Не срабатывает, так как, как я понимаю, нужно прокидывать token с запросами
Создай ещё две фикстуры 1. Создаёт юзера 2. Создаёт токен для юзера (использует юзера которого ты создал в 1 Фикстуре) А в третьем уже создаёшь authorized_client так скажем
Так которая создаёт юзера есть(create_user), токен вроде как генерится автоматом за счёт пакета, а по поводу реализации 3 пункта ре совсем понятно:)
у тебя только JWTAuthorization в настройках авторизации?
ну вот у тебя внизу есть SessionAuthentication, следовательно drf будет его поддерживать
Это Фикстура использует 2 ую Фикстуру который я описал выше
ну сессия в базе создается, скорее всего в этом проблема
Проблема как написать фикстуру, а не в сессиях:)
для получение авторизированного клиента?
Тут токен получается дёрнуть. Но в каждом методе же такое писать не буду. А логиниться таким способом в фикстурах нельзя
ну @pytest.fixture def new_user(django_user_model): django_user_model.objects.create(username="someone", password="something") @pytest.fixture def logged_in_client(client, new_user): return client.force_login(new_user)
А посмотрите пжл, выше я такой же метод написал, только return делаю client
Вот
не то возвращаешь
В другом проекте работало. Но там авторизация была на основе сессий, а не jwt. Спасибо, попробую
поменяй местами JWTAUthorization вниз
Блин, так мне и надо именно через jwt:)
так он будет работать
Хорошо, попробую эти варианты. Спасибо Вам!
тебе если через jwt нужно, то из simple_jwt дерни метод создания токена, там функция есть. и возвращай client с хедером этого токена
В этом, собственно, мой вопрос был изначально:)
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/creating_tokens_manually.html
вот отсюда берешь токен для юзера и его в хедер можешь положить
О, вроде то, что нужно. Спасибо большое
я думал любая авторизация
Обсуждают сегодня