Могу ли я использовать JWTAuthentication дважды для аутентификации при входе? - PullRequest
0 голосов
/ 15 апреля 2020

В моем логине. Сначала я хотел отправить OTP, а во-вторых, я хотел проверить OTP, а затем вернуть токен.

Я использую rest_framework_simplejwt JWTAuthentication. Во-первых, я проверяю пользователя и отправляю OTP, не возвращая токен, а во-вторых, я проверяю OTP и возвращая токен.

Дайте мне знать, если это правильный способ использования? Если нет, то как я могу реализовать это с помощью JWTAuthentication.

ИЛИ Если это неправильный способ использования, могу ли я реализовать как первое применение, использовать Basi c аутентификация для проверки пользователя и второго поместите jwt аутентификацию , чтобы проверить OTP и отправить токены. Дайте мне знать ваше решение.

1 Ответ

0 голосов
/ 17 апреля 2020

Что я понял?

Вам необходимо отправить OTP текущему пользователю, который выполняет ваш маршрут send_otp после проверки, существует ли пользователь в вашей системе или нет, а затем маршрут verify_otp который проверит OTP, который пользователь отправил в API вместе с соответствующим mobile_number / email_id.

Как это сделать?

  • send_otp - Держите этот маршрут открытым, для этого вам не нужна аутентификация, даже Basi c Auth (это так работает в промышленности), просто получите mobile_number от пользователя в запросе, проверьте существует ли он в БД, и отправьте OTP на этот номер, и установите OTP соответствующему пользователю в вашем кэше, возможно, для перепроверки (redis / memcache). Используйте регулирование для этого маршрута, чтобы никто не смог использовать этот ваш API.

  • verify_otp - Этот маршрут также будет открыт (нет authentication_class /missions_classes) получите от пользователя номер мобильного телефона / идентификатор электронной почты + OTP, подтвердите его в кэше, при необходимости проверьте, сгенерируйте токен, используя TokenObtainPairSerializer , и отправьте токен refre sh + в ответе, если OTP неверно, отправьте 401.

...