Как использовать пользовательскую аутентификацию Django с отдыхом TokenAuthentication - PullRequest
0 голосов
/ 02 мая 2020

Так что я использую аутентификацию стороннего производителя (Firebase Auth) (Facebook && Google) с моим Django приложением.

Я настроил некоторые конечные точки отдыха, которым требуется аутентификация для публикации некоторого контента.

Мне очень нравится использовать Django Rest Framework Token Authentication. Однако для этого требуется, чтобы мне потребовалось передать имя пользователя и пароль в другом ключе.

Поскольку я использую Firebase (Facebook и Google), пользователям не предлагается устанавливать какие-либо пароли. Вот моя модель CustomUser.

class CustomUser(AbstractUser):
    email = models.EmailField(unique=True)
    uid = models.CharField(max_length=191, null=False)
    first_name = models.CharField(max_length=20, default="", blank=True)
    last_name = models.CharField(max_length=20, default="", blank=True)
    address = models.CharField(max_length=150, default="", blank=True)

Есть ли какие-либо обходные пути или идеи по этому поводу?

1 Ответ

1 голос
/ 02 мая 2020

Трудно сказать без подсказки о вашей модели пользователя, но Django Токен Rest Framework не требует пароля. Вы можете создать токен, указав только пользователя (который не обязательно должен быть django 's auth user model).

from rest_framework.authtoken.models import Token

Token.objects.create(user=user)

Чтобы использовать Django модель пользователя без пароля, вы можно использовать user.set_unusable_password() сразу после создания объекта пользователя.

...