Как мы можем получить пользовательский токен из dj-rest-auth при аутентификации?

Мы пытаемся использовать dj_rest_auth, чтобы заставить социальную аутентификацию, начиная с Google auth, работать на сайте / приложении с использованием пары JWT-токенов (access & refresh). Наша попытка решения выглядит следующим образом: Цель: Мы изменяем конечные точки API register & login, предоставляемые dj_rest_auth, чтобы вернуть нашу пользовательскую пару токенов JWT (как возвращается конечной точкой api/token), вместо ключа сессии.

Возможные варианты:

Вариант 1: Расширить dj_rest_auth.registration.views.RegisterView с помощью CustomRegisterView, изменив метод perform_create, чтобы он возвращал пару JWT-токенов.

Вариант 2: Пусть dj_rest_auth.registration.views.RegisterView возвращает ключ сессии & токен в cookie, но модифицируйте токен в cookie, чтобы добавить логику в наш пользовательский сериализатор токенов для добавления дополнительных полей. Описанные выше подходы будут применимы и к Loginview.

Наши вопросы:

Что из вышеперечисленного лучше?

Наше предпочтение отдается подходу 1 - он более соответствует нашему сопровождению & использованию токенов перед социальным аутентификатором. Есть ли какие-либо проблемы с вышеупомянутым вариантом 1 - т.е. чтобы конечные точки регистрации и входа возвращали пару JWT-токенов? Если предположить вариант 1 - какой способ лучше всего подойдет? Мы пытаемся расширить RegisterView - но неясно, какой метод расширить, чтобы изменить вывод. Мы уже расширили класс rest_framework_simplejwt.serializers.TokenObtainPairSerializer, чтобы изменить метод get_token для возврата дополнительных полей, которые нам нужны в нашем токене - и это работает с конечными точками /api/token. Есть ли способ повторно использовать тот же сериализатор или код?

Спасибо.

Вернуться на верх