Как добавить токен в ответ после регистрации пользователя DRF Social OAuth2

Я использую DRF Social OAuth2 для социальной аутентификации, он выдает мне токен при входе в систему, но я хочу вернуть токен в ответ, когда я регистрирую пользователя с помощью электронной почты и пароля. Как я могу это сделать

Нам нужно увидеть вашу конечную точку, чтобы лучше ответить на вопрос. Вот предложение, если вы используете маркерный аутентификатор.

from rest_framework.authtoken.models import Token

def get_token_response(user):
    token, _ = Token.objects.get_or_create(user=user)
    response = {"token": "Token " + str(token)}
    return response

И тогда ваша конечная точка будет выглядеть примерно так (если вы используете набор представлений):

class UserViewSet(viewsets.ModelViewSet):

    def create(self, request, *args, **kwargs):
        response = super().create(request, *args, **kwargs)
        user = User.objects.get(id=response.data["id"])
        return Response(get_token_response(user), status=201)

Моя точка зрения заключается в том, что вам нужно получить токен из базы данных и настроить конечную точку создания пользователя (она же регистрация), чтобы она возвращала его.

Надеюсь, это поможет.

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