Я использую Django 2.2 для своего веб-приложения.
И я искал учебные пособия, которые предназначены для перекрестного входа с QR-кодом в веб-приложение с помощью мобильного приложения.
В основном рабочий процесс выглядит следующим образом:
ожидаемый рабочий процесс
- Пользователь заходит на веб-сайт на рабочем столе
- При выборе имени пользователя / пароля или входа в систему с помощью QR-кода (мы предполагаем, что пользователь зарегистрирован)
- Пользователь выбирает QR-код для входа в систему
- Пользователю предлагается установить мобильное приложение (может быть android или iOS)
- Пользователь устанавливает мобильное приложение и входит в систему, используя имя пользователя / пароль.
- В мобильном приложении пользователь затем соглашается на будущий вход с использованием QR-кода в качестве альтернативы (это делается один раз)
- После этого в будущих входах, когда Пользователь выбирает QR-код для входа в соответствии с шагом 3. Они используют мобильное приложение для сканирования QR-кода создается на странице входа на сайт.
- Затем мобильное приложение использует FaceID или FingerPrint ID (при условии iOS), чтобы затем разрешить вход. Пользователь нажимает кнопку Да в мобильном приложении, чтобы подтвердить вход.
- Каким-то образом веб-приложение уведомляется динамически и позволяет входить в систему в браузере настольного компьютера.
Я не совсем понимаю, как мобильное и веб-приложение на бэкэнде работают друг с другом чтобы добиться этого без проблем.
Что я нашел
Я нашел эту библиотеку https://github.com/aruseni/django-qrauth, которая, похоже, больше не поддерживается. Но я все еще не могу понять, как работает поток между мобильным приложением и серверной частью webapp.
Я также нашел это https://medium.com/@ksarthak4ever / django -two-factor-authentication-2ece42748610 , которое кажется использовать мобильный телефон как устройство 2FA. Не совсем тот вариант использования, который я ищу, если я не понял неправильно.
Я нашел эту статью https://backendless.com/how-to-implement-mobile-to-web-cross-login-using-a-qr-code/, которая дала мне термин «перекрестный вход». Тем не менее, статья сильно тяготеет к этому конкретному поставщику.
Я ищу «понимание» концепции, не полагаясь на особенности реализации поставщика.
То, что я не ищу
В случае, если мой вопрос плохо сформулирован и неправильно понят, я включил этот раздел, чтобы прояснить, чего я не ищу.
Я не ищу вариант использования, в котором QR-код служит Подтверждение 2FA для приложения-аутентификатора.
Я тоже пока не смотрю примеры кода. Я просто хочу в первую очередь четкое представление о том, как взаимодействуют мобильное и веб-приложение. Я считаю, что JWT необходим, хотя предполагаю.
Рабочий процесс ценится больше, чем реальный код, потому что я хочу сначала понять, как это работает.