Как мы можем получить пользовательский токен из 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. Есть ли способ повторно использовать тот же сериализатор или код?
Спасибо.