[GX] Google Captcha (Auth)

[GX] Google Captcha (Auth) 1.0.1

Нет прав для скачивания

Георгий Шевченко

Проверенные
Сообщения
2,205
Реакции
4,393
Баллы
8,750
Пользователь Георгий Шевченко разместил новый ресурс:

[GX] Google Captcha (Auth) - Добавляет капчу при авторизации (/login, /admin.php)

Посмотреть вложение 64688

Установка:
- Распоковать архив
- Закинуть папку GoogleCaptcha в папку js/gx/, если папки gx нету, создайте её.
- Установить XML файл
- Зайти в настройки и указать секретный ключ от капчи нашей
* Ключ нужно получить тут -

Демонстрация
:

Узнать больше об этом ресурсе...
 
Уважаемый Григорий, подскажите пожалуйста что не так?
Код:
ОШИБКА:
Invalid domain for site key

Склоняюсь к тому, что не правильный ключ прописал в настройках, тогда вопрос - в каком файле прописывается ключ, и как его можно поменять?

P.S. все решилось, оказывается домен не успел прописаться в настройках :-)

Такая проблема еще, в админке капча есть, на странице входа по адресу сайт.ру/login капча есть, но вот если заходить на форум через кнопку входа там капчи нету и вход получается невозможным.
b21e6-clip-74kb.png
Это у меня косяк, или в плагине на этой странице не предусмотрена капча?
 
Последнее редактирование:
  • Мне нравится
Реакции: Hope
Дми-3-й, здравствуйте, покажите скриншот модификаций с данным дополнением. Дело в том что стили отличаются, и судя по всему, у вас там не с работала модификация.
 
1.png
helper_login_form
<xen:if is="!{$visitor.user_id}">

<xen:container var="$hideLoginBar">1</xen:container>

<form action="{xen:link 'login/login'}" method="post" class="xenForm" id="pageLogin">

<xen:if hascontent="true">
<div class="errorPanel"><span class="errors">
<xen:contentcheck>{xen:raw $text}</xen:contentcheck>
</span></div>
</xen:if>

<h2 class="textHeading">{xen:phrase log_in_or_sign_up}</h2>

<dl class="ctrlUnit">
<dt><label for="ctrl_pageLogin_login">{xen:phrase your_name_or_email_address}:</label></dt>
<dd><input type="text" name="login" value="{$defaultLogin}" id="ctrl_pageLogin_login" class="textCtrl" tabindex="1" {xen:if "{$focusLogin} AND !{$defaultLogin}", 'autofocus="autofocus"'} /></dd>
</dl>

<xen:if is="{$xenOptions.registrationSetup.enabled}">
<dl class="ctrlUnit">
<dt><label for="ctrl_pageLogin_password">{xen:phrase do_you_already_have_account}</label></dt>
<dd>
<ul>
<li><label for="ctrl_pageLogin_not_registered"><input type="radio" name="register" value="1" id="ctrl_pageLogin_not_registered" tabindex="5" />
{xen:phrase no_create_account_now}</label></li>
<li><label for="ctrl_pageLogin_registered"><input type="radio" name="register" value="0" id="ctrl_pageLogin_registered" checked="checked" class="Disabler" tabindex="5" />
{xen:phrase yes_my_password_is}:</label></li>
<li id="ctrl_pageLogin_registered_Disabler">
<input type="password" name="password" class="textCtrl" id="ctrl_pageLogin_password" tabindex="2" {xen:if "{$focusLogin} AND {$defaultLogin}", 'autofocus="autofocus"'} />
<div><a href="{xen:link lost-password}" class="OverlayTrigger OverlayCloser" tabindex="6">{xen:phrase forgot_your_password}</a></div>
</li>
</ul>
</dd>
</dl>
<xen:else />
<dl class="ctrlUnit">
<dt><label for="ctrl_pageLogin_password">{xen:phrase password}:</label></dt>
<dd>
<input type="password" name="password" class="textCtrl" id="ctrl_pageLogin_password" tabindex="2" />
<div><a href="{xen:link lost-password}" class="OverlayTrigger OverlayCloser" tabindex="6">{xen:phrase forgot_your_password}</a></div>
</dd>
</dl>
</xen:if>

<xen:if is="{$captcha}">
<dl class="ctrlUnit">
<dt>{xen:phrase verification}:</dt>
<dd>{xen:raw $captcha}</dd>
</dl>
</xen:if>

<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<input type="submit" class="button primary" value="{xen:phrase log_in}" data-loginPhrase="{xen:phrase log_in}" data-signupPhrase="{xen:phrase sign_up}" tabindex="4" />
<label class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_pageLogin_remember" tabindex="3" /> {xen:phrase stay_logged_in}</label>
</dd>
</dl>

<xen:if is="{$xenOptions.facebookAppId}">
<xen:require css="facebook.css" />
<dl class="ctrlUnit">
<dt></dt>
<dd><a href="{xen:link register/facebook, '', 'reg=1'}" class="fbLogin" tabindex="10"><span>{xen:phrase login_with_facebook}</span></a></dd>
</dl>
</xen:if>

<xen:if is="{$xenOptions.twitterAppKey}">
<xen:require css="twitter.css" />
<dl class="ctrlUnit">
<dt></dt>
<dd><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin" tabindex="10"><span>{xen:phrase login_with_twitter}</span></a></dd>
</dl>
</xen:if>

<xen:if is="{$xenOptions.googleClientId}">
<xen:require css="google.css" />
<dl class="ctrlUnit">
<dt></dt>
<dd><span class="googleLogin GoogleLogin JsOnly" tabindex="10" data-client-id="{$xenOptions.googleClientId}" data-redirect-url="{xen:link register/google, '', 'code=__CODE__', 'csrf={$session.sessionCsrf}'}"><span>{xen:phrase login_with_google}</span></span></dd>
</dl>
</xen:if>

<input type="hidden" name="cookie_check" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
<input type="hidden" name="redirect" value="{xen:if $redirect, $redirect, $requestPaths.requestUri}" />
<xen:if is="{$postData}">
<input type="hidden" name="postData" value="{xen:escape {xen:helper json, $postData}}" />
</xen:if>

</form>

<script>
$(function()
{
var $button = $('#pageLogin input.button.primary');
$('#pageLogin input[name="register"]').click(function()
{
$button.val(
$('#pageLogin input[name="register"]:checked').val() == '1'
? $button.data('signupphrase')
: $button.data('loginphrase')
);
});
});
</script>
</xen:if>

Заменить:
<xen:if is="!empty({$xenOptions.gx_google_captcha_key})">
<xen:if is="{$xenOptions.gx_active_login} == 0">
<script src=" " async></script>
<xen:require js="js/gx/GoogleCaptcha/jquery.validate.min.js"/>

<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<div id="gx_style_google_captcha" class="g-recaptcha" data-callback="correctCaptcha" data-sitekey="{$xenOptions.gx_google_captcha_key}"></div>
<input type="submit" class="button primary" value="{xen:phrase log_in}" data-loginPhrase="{xen:phrase log_in}" data-signupPhrase="{xen:phrase sign_up}" tabindex="4" />
<label class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_pageLogin_remember" tabindex="3" /> {xen:phrase stay_logged_in}</label>
</dd>
</dl>


<style>
#gx_style_google_captcha {margin-top:5px;}
</style>

<script>
$("#pageLogin").validate({
submitHandler: function (form) {
var response = grecaptcha.getResponse();
if (response.length == 0 || empty(response))
{ return false;}
else { return true;}
}
});
</script>
<xen:else />
$0
</xen:if>
<xen:else />
$0
</xen:if>

login_bar_form
<xen:comment>
With Javascript enabled, this form will be moved at page init time,
with the command $('#login').appendTo('#loginBar .pageContent');

Note that all external auth checks need to be added to the conditional below
in order to set $eAuth = 1 if any external auth providers are available.
</xen:comment>

<xen:hook name="login_bar_eauth_set">
<xen:if is="{$xenOptions.facebookAppId}"><xen:set var="$eAuth">1</xen:set></xen:if>
<xen:if is="{$xenOptions.twitterAppKey}"><xen:set var="$eAuth">1</xen:set></xen:if>
<xen:if is="{$xenOptions.googleClientId}"><xen:set var="$eAuth">1</xen:set></xen:if>
</xen:hook>

<form action="{xen:link 'login/login'}" method="post" class="xenForm {xen:if $eAuth, 'eAuth'}" id="login" style="display:none">

<xen:if hascontent="true">
<ul id="eAuthUnit">
<xen:contentcheck>
<xen:hook name="login_bar_eauth_items">
<xen:if is="{$xenOptions.facebookAppId}">
<xen:require css="facebook.css" />
<li><a href="{xen:link register/facebook, '', 'reg=1'}" class="fbLogin" tabindex="110"><span>{xen:phrase login_with_facebook}</span></a></li>
</xen:if>

<xen:if is="{$xenOptions.twitterAppKey}">
<xen:require css="twitter.css" />
<li><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin" tabindex="110"><span>{xen:phrase login_with_twitter}</span></a></li>
</xen:if>

<xen:if is="{$xenOptions.googleClientId}">
<xen:require css="google.css" />
<li><span class="googleLogin GoogleLogin JsOnly" tabindex="110" data-client-id="{$xenOptions.googleClientId}" data-redirect-url="{xen:link register/google, '', 'code=__CODE__', 'csrf={$session.sessionCsrf}'}"><span>{xen:phrase login_with_google}</span></span></li>
</xen:if>
</xen:hook>
</xen:contentcheck>
</ul>
</xen:if>

<div class="ctrlWrapper">
<dl class="ctrlUnit">
<dt><label for="LoginControl">{xen:phrase your_name_or_email_address}:</label></dt>
<dd><input type="text" name="login" id="LoginControl" class="textCtrl" tabindex="101" /></dd>
</dl>

<xen:if is="{$xenOptions.registrationSetup.enabled}">
<dl class="ctrlUnit">
<dt>
<label for="ctrl_password">{xen:phrase do_you_already_have_account}</label>
</dt>
<dd>
<ul>
<li><label for="ctrl_not_registered"><input type="radio" name="register" value="1" id="ctrl_not_registered" tabindex="105" />
{xen:phrase no_create_account_now}</label></li>
<li><label for="ctrl_registered"><input type="radio" name="register" value="0" id="ctrl_registered" tabindex="105" checked="checked" class="Disabler" />
{xen:phrase yes_my_password_is}:</label></li>
<li id="ctrl_registered_Disabler">
<input type="password" name="password" class="textCtrl" id="ctrl_password" tabindex="102" />
<div class="lostPassword"><a href="{xen:link lost-password}" class="OverlayTrigger OverlayCloser" tabindex="106">{xen:phrase forgot_your_password}</a></div>
</li>
</ul>
</dd>
</dl>
<xen:else />
<dl class="ctrlUnit">
<dt>
<label for="ctrl_password">{xen:phrase password}:</label>
</dt>
<dd>
<input type="password" name="password" class="textCtrl" id="ctrl_password" tabindex="102" />
<div class="lostPasswordLogin"><a href="{xen:link lost-password}" class="OverlayTrigger OverlayCloser" tabindex="106">{xen:phrase forgot_your_password}</a></div>
</dd>
</dl>
</xen:if>

<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<input type="submit" class="button primary" value="{xen:phrase log_in}" tabindex="104" data-loginPhrase="{xen:phrase log_in}" data-signupPhrase="{xen:phrase sign_up}" />
<label for="ctrl_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_remember" tabindex="103" /> {xen:phrase stay_logged_in}</label>
</dd>
</dl>
</div>

<input type="hidden" name="cookie_check" value="1" />
<input type="hidden" name="redirect" value="{$requestPaths.requestUri}" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />

</form>

Заменить:
<xen:if is="!empty({$xenOptions.gx_google_captcha_key})">
<xen:if is="{$xenOptions.gx_active_login} == 0">
<script src=" " async></script>
<xen:require js="js/gx/GoogleCaptcha/jquery.validate.min.js"/>

<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<div id="gx_style_google_captcha" class="g-recaptcha" data-callback="correctCaptcha" data-sitekey="{$xenOptions.gx_google_captcha_key}"></div>
<input type="submit" class="button primary" value="{xen:phrase log_in}" data-loginPhrase="{xen:phrase log_in}" data-signupPhrase="{xen:phrase sign_up}" tabindex="4" />
<label class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_pageLogin_remember" tabindex="3" /> {xen:phrase stay_logged_in}</label>
</dd>
</dl>


<style>
#gx_style_google_captcha {}
</style>

<script>
$("#login").validate({
submitHandler: function (form) {
var response = grecaptcha.getResponse();
if (response.length == 0 || empty(response))
{ $('#gx_style_google_captcha').addClass('errorGX_Captcha'); return false;}
else { $('#gx_style_google_captcha').removeClass('errorGX_Captcha'); return true;}
}
});
</script>
<xen:else />
$0
</xen:if>
<xen:else />
$0
</xen:if>
 
Последнее редактирование:
Вас скрин просили, а не код, код автор и сам знает.

Модификации у Вас сработали, по крайней мере, что на скрине, значит возможно конфликт с другой модификацией.
 
Георгий Шевченко, Спасибо за капчу. В reCAPTCHA Google есть два ключа: Ключ и Секретный ключ. У вас написано: указать секретный ключ от капчи нашей. Надо указывать Ключ. Если указать Секретный ключ то будет ошибка. Еще один момент если перейти по ваш сайт/login/login то при регистрации капчу обходишь , ее просто нету на страничке регистрации. Или если ее отключить про авторизации , то и при регистрации ее ни будет.
 
Последнее редактирование:
указать секретный ключ от капчи нашей
Изменил описание, просто ошибся :facepalm:


Еще один момент если перейти по ваш сайт/login/login то при регистрации капчу обходишь , ее просто нету на страничке регистрации. Или если ее отключить про авторизации , то и при регистрации ее ни будет.
Есть встроенная капча при регистрации. (Я же писал что только при авторизации добавляет). Не вижу смысла интегрировать то, что уже есть в коробке.

Url: /admin.php?options/list/usersAndRegistration
reg-go.png

И после заполнение этих полей у вас появится капча в регистрации
gp-reg.png
 
Георгий Шевченко, Спасибо ) Как смотрел ? Раз 10 все перечитал а не увидел , смотрю в книгу а вижу фигу (
 
У меня такой вопрос:
Стоит гугл капча куда надо галочку поставить и когда я её ставлю, то просит найти дорожные знаки на изображениях и это крайне бесит! На других сайтах встречал такую капчу и при установки галочки, что ты не робот - тебя пускало дальше по сайту и никакие изображения тыкать не надо было!
Как сделать без тыканья изображений? :rolleyes:

P.S Плагин работает, спасибо!
 
У меня такой вопрос:
Стоит гугл капча куда надо галочку поставить и когда я её ставлю, то просит найти дорожные знаки на изображениях и это крайне бесит! На других сайтах встречал такую капчу и при установки галочки, что ты не робот - тебя пускало дальше по сайту и никакие изображения тыкать не надо было!
Как сделать без тыканья изображений? :rolleyes:

P.S Плагин работает, спасибо!
Не силен в этом,но если я не ошибаюсь, все дело в IP адресах. Если Вы 1 раз в день проходите эту капчу, то пустит без задания, если же мучаете капчу по 100 раз, то выполняйте задания, на то и нужна капча. Либо меняйте вариант проверки.
 
Привет! Вопрос, в ксените почему-то не отобрадается гугл капча, в дефолтной теме все ок.
Что почекать надо для этого?

и второй вопрос - можно ли гугл капчу руссифицировать?
Choose images with window... не все поймут.

и как сделать чтобы не было картинок, а только галочка была классическая

Спасибо)
 
Почитайте подробнее об этой капче и станет понятно, когда просто галочка появляется, а когда более усложнённая.
 
Mirovinger, ага, вижу, выше задавали. спасибо
а по остальным вопросам? any ideas?
 
BIOMOND, я так понимаю, что руссификация на стороне гугла, вель оттуда идет капча.

если ог смотреть, то там кроме ошибок рсс канала нет ничего... или где лучше глянуть?
 
А можно-ли сделать, что-бы в случае, если каптча не введена авторизоваться нельзя было?
Ибо на данный момент авторизация проходит спокойно. Без необходимости использовать каптчу.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу