Требуется на работающем сайте (WP+Woo) проекте реализовать регистрацию/авторизацию через отправку OTP на email, так же нужно сверстать пользовательскую часть
Задача довольно срочная (дедлайн вечер 24.10).
Требуется на работающем сайте (WP+Woo) проекте реализовать регистрацию/авторизацию через отправку OTP на email, так же нужно сверстать пользовательскую часть (скрин_1 (https://skr.sh/sSKFBXwPHhO), скрин_2 (https://skr.sh/sSK3uUNOCBY), скрин_3 (https://skr.sh/sSKNkzlP5Uv), скрин_4 (https://skr.sh/sSKrzl8owm2)).
Проверили готовые плагины, типа https://ru.wordpress.org/plugins/otp-login/ , поняли что они не поддерживают регистрацию, а только работают для авторизации с уже зарегистрированными пользователями.
Было принято решение делать вручную, по такому плану:
- генерируем OTP (One Time Password), отправляем на email и пишем OTP в cookie (у cookie время действие ~ 1 мин, если они истекают повторно просим отправить код)
- при вводе кода сопоставляем его с cookie (можно предусмотреть шифронание, во избежание обхода, хотя это наверное не нужно)
- в случае совпадения OTP и введенного кода в инпут, отправляем запрос на подготовленный эндпоинт для регистрации профиля на бекенде (пример (https://wordpress.stackexchange.com/questions/264866/how-to-use-the-wp-rest-api-for-new-user-registration-sign-up-form))
Нюансы:
- если есть ограничения у WP по обязательным полям (логин/имя) просто генерируем рандомное значение типа user1231, которое потом пользователь может сам поменять
- естественно не забыть создавать сессию после регистрации, как для авторизованного пользователя, чтоб не нужно было сразу после регистрации опять авторизироваться (но это из коробки должно работать)
Требуется на работающем сайте (WP+Woo) проекте реализовать регистрацию/авторизацию через отправку OTP на email, так же нужно сверстать пользовательскую часть (скрин_1 (https://skr.sh/sSKFBXwPHhO), скрин_2 (https://skr.sh/sSK3uUNOCBY), скрин_3 (https://skr.sh/sSKNkzlP5Uv), скрин_4 (https://skr.sh/sSKrzl8owm2)).
Проверили готовые плагины, типа https://ru.wordpress.org/plugins/otp-login/ , поняли что они не поддерживают регистрацию, а только работают для авторизации с уже зарегистрированными пользователями.
Было принято решение делать вручную, по такому плану:
- генерируем OTP (One Time Password), отправляем на email и пишем OTP в cookie (у cookie время действие ~ 1 мин, если они истекают повторно просим отправить код)
- при вводе кода сопоставляем его с cookie (можно предусмотреть шифронание, во избежание обхода, хотя это наверное не нужно)
- в случае совпадения OTP и введенного кода в инпут, отправляем запрос на подготовленный эндпоинт для регистрации профиля на бекенде (пример (https://wordpress.stackexchange.com/questions/264866/how-to-use-the-wp-rest-api-for-new-user-registration-sign-up-form))
Нюансы:
- если есть ограничения у WP по обязательным полям (логин/имя) просто генерируем рандомное значение типа user1231, которое потом пользователь может сам поменять
- естественно не забыть создавать сессию после регистрации, как для авторизованного пользователя, чтоб не нужно было сразу после регистрации опять авторизироваться (но это из коробки должно работать)