Django Rest + FireBase для аутентификации телефонного номера с OTP

Привет всем У меня нет много кода, чтобы показать, так как мне трудно получить знания относительно аутентификации номера телефона на firebase. История такова: я не использую базу данных firebase, мои клиенты могут быть международными, поэтому я хочу использовать минимальный механизм аутентификации для отправки otp кодов, и мы пришли к firebase как к окончательному решению, так как он позволяет отправлять 10000 смс в месяц и удовлетворяет наши потребности. Документация, которую я нашел в интернете, полностью основана на базе данных firebase, где front end напрямую обращается к базе данных firebase и backend даже не нужно заботиться в таких обстоятельствах.

Я просто хочу проверить код otp пользователя и предоставить токен обновления и токен доступа с помощью простого jwt (я не знаю, правильно ли это или нет) Я нашел только два лучших документа или статьи, которые лучше всего соответствуют моим требованиям. Статья 1

Статья 2

Это моя пользовательская модель пользователя

class User(AbstractBaseUser, PermissionsMixin):

    CLIENT=1
    DATA_ENTRY=2

    ROLE_CHOICES = (
        (CLIENT, 'CLIENT'),
        (DATA_ENTRY, 'DATA_ENTRY')
    )


    phone_number = models.CharField(_("phone number"), max_length=60, unique=True)
    first_name = models.CharField(_("first name"), max_length=150, blank=True)
    middle_name = models.CharField(_("middle name"), max_length=150, blank=True)
    last_name = models.CharField(_("last name"), max_length=150, blank=True)
    role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES, blank=True, default=1)
    email = models.EmailField(_("email address"), blank=True)
    is_staff = models.BooleanField(
        _("staff status"),
        default=False,
        help_text=_("Designates whether the user can log into this admin site."),
    )
    is_active = models.BooleanField(
        _("active"),
        default=False,
        help_text=_(
            "Designates whether this user should be treated as active. "
            "Unselect this instead of deleting accounts."
        ),
    )
    date_joined = models.DateTimeField(_("date joined"), default=timezone.now)

    USERNAME_FIELD = "phone_number"
    REQUIRED_FIELDS = []

Будет огромная помощь, если кто-нибудь сможет направить меня через это, спасибо сообществу.

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