Как установить Google captcha на сайт?
В этой статье я расскажу, как установить и настроить на своем сайте каптчу от Google. Для чего это нужно? Ну как правило это защита от спама в моем случае блог атаковали боты регистрировались автоматически и спамили в комментарии всякий бред на другие сайты.
Меня это все стало выводить из себя и в один прекрасный день решил, что с этим нужно что-то делать.
Решение было найдено быстро, посколько сайт написан на django, то для этих целей есть специальная батарейка которая называется Google Recaptcha вот ее и будем сейчас внедрять на сайт.
Первым делом нам нужно пройти на сайт Google recaptcha и зарегистрироваться там, процесс регистрации обычный и не требует подробного описания. После регистрации мы попадаем в свой кабинет, где нужно добавить свой сайт на который хотим установить каптчу.
После добавления сайта вы получаете ключи которые в дальнейшем нужно будет установить на сайт.
Далее переходим по этой ссылке и устанавливаем саму каптчу согласно инструкции в описании.
Я устанавливал в программе Pycharm
Открываем файл Settings.py и добавляем следующие настройки:
INSTALLED_APPS += ('g_recaptcha')
Тут указываем свой публичный и секретные ключи которые вы получили на сайте Google recaptcha.
GOOGLE_RECAPTCHA_SITE_KEY = 'key_obtained_from_google' Публичный ключ
GOOGLE_RECAPTCHA_SECRET_KEY = 'key_obtained_from_google' Секретный ключ
В файле views.py своего приложения нужно в контекст добавить публичный ключ и сделать импорты как показано ниже.
from django.conf import settings
from g_recaptcha.validate_recaptcha import validate_captcha
'GOOGLE_RECAPTCHA_SITE_KEY': settings.GOOGLE_RECAPTCHA_SITE_KEY,
В шаблон выводим публичный ключ т.е. саму каптчу, ставим этот код там где вы хотите вывести каптчу. В моем случае я поставил каптчу в шаблоне авторизации перед кнопкой "Войти", в шаблоне регистрации перед кнопкой "Регистрация" и в шаблоне полной новости в комментраиях перед кнопкой "Добавить комментарий"
<div class="g-recaptcha" data-sitekey="{{ GOOGLE_RECAPTCHA_SITE_KEY }}"></div>
И последнее действие в файле views.py над вашей функцией в которой вы выводите в контексте публичный ключ каптчи нужно установить декоратор
@validate_captcha
def view(request):
Все таким образом мы получаем установленную и настроеную гугл каптчу на своем сайте!
Возможные проблемы с выводом капчи.
Недавно устанавливал капчу на сайте клиента и там была проблема из-за которой капча не выводилась в шаблон. Суть проблемы заключалась в том, что на сайте было два приложения, по этому капчу нужно добавлять в views.py того приложения которое рендириться в ваш главный шаблон, в моем случае это был index.html
Ваши комментарии
Комментарии могут оставлять только зарегистрированые пользователи!