Реализация captcha API REST клиентского сервера
Я создаю приложение REST для клиентского сервера. Клиентская сторона основана на Angular, а сервер-на PHP (не то, чтобы это имело большое значение).
Что мне интересно, есть ли какие-либо лучшие практики, хорошие примеры реализации captcha в этом случае? Каптчи будет использоваться для регистрации пользователей и т. п.
Я не ограничен какими-либо конкретными библиотеками, только требование заключается в том, что не может быть никаких вызовов сторонних серверов на стороне клиента (библиотеки js, размещенные на 3rd party серверы или ключ api req и т. д.).
спасибо
3 ответов
когда google captcha утверждает одного пользователя, он предоставляет вам токен.
Итак, представьте себе этот контекст. Пользователи собираются сохранить и использует captcha, captcha делает свой бизнес, пока не одобрит пользователя и не даст вам токен, это все, что имеет значение.
Если вы хотите увидеть "предварительный" поток обращений к этому.
- пользователь перед регистрацией прошел captcha, captcha дает вам токен в передней части.
- пользователь нажимает сохранить, вы получаете в серверная часть данных формы и маркер captcha. Вы спрашиваете google через api, является ли токен реальным? если они сказали "Да", вы сохраняете форму, если каким-то образом Google не распознает ее, вы возвращаете ошибку.
- передний конец прослушивает успех или ошибку и какую ошибку. Если ошибка captcha, принудительно повторите попытку, получите новый токен.
- бэкэнд снова получает данные формы и новый токен и проверяет снова.
новый Google-иш reCaptcha довольно скользкий. У них есть несколько простых для понимания примеров и сценариев использования.
https://www.google.com/recaptcha/intro/index.html
Edit: чтобы решить ваш конкретный вопрос о том, как реализовать это в приложении RESTful, я бы сделал два файла. Одним из них будет открытый файл, такой как index.php, а другой-это внутренний файл, который будет содержать личную информацию.
Я мог бы скопировать / вставить мой ранее написанный how-to здесь, или я мог бы просто связать вас с статья, которую я написал 2 месяца назад.