Вход Регистрация
*— обязательные для заполнения поля
Войти через социальные сети

Минимальная настройка после установки

1) Необходимо установить два модуля: TS Умная авторизация и TS Front-end framework
второй должен установиться автоматически, но если не установился, установите вручную.

2) Далее перейдите в админку в раздел Сервисы - TS Умная авторизация и в настройках авторизации выберите, если не выбрано,  вход на сайт по необходимым полям, например Логин + E-mail.
Вход номеру телефона пока не поддерживается.

3) В настройках регистрации пока ничего выбирать не нужно, по умолчанию компонент выводит следующие поля для регистрации: Имя и E-mail
Логин и пароль в таком случае создаются автоматические, если хотите, что бы пользователь их сам задавал, тогда надо выбрать необходимые поля.

Установка компонентов в публичной части сайта

В шаблоне вашего сайта в хедере должен быть подключен jQuery, если не подключен, пример подключения
CJSCore::Init(array('jquery2'));

В хедере вашего шаблона сайта может быть два варианта авторизации, вам нужно выбрать один из них:

1. Через компонент модуля: api:auth.ajax
2. Через компонент корзины: bitrix:sale.basket.basket.line

1) Вариант авторизации через компонент api:auth.ajax

В хедере шаблона сайта (файл header.php) нужно разместить такой код вызова компонента

<? $APPLICATION->IncludeComponent(
"api:auth.ajax",
".default",
array(
"LOGIN_BTN_CLASS" => "api_button api_button_small",
"LOGIN_MESS_HEADER" => "Вход на сайт",
"LOGIN_MESS_LINK" => "Вход",
"REGISTER_BTN_CLASS" => "api_button api_button_small",
"REGISTER_MESS_HEADER" => "Регистрация",
"REGISTER_MESS_LINK" => "Регистрация",
"RESTORE_MESS_HEADER" => "Вспомнить пароль",
"PROFILE_URL" => "/personal/",
"LOGOUT_URL" => "?logout=yes",
"COMPONENT_TEMPLATE" => ".default"
),
false
); ?>

Данный комплексный компонент в модальном окне будет выводить три формы:

1. Вход на сайт: api:auth.login
2. Регистрация: api:auth.register
3. Вспомнить пароль: api:auth.restore

Заголовки окна, названия и классы ссылок передаются через параметры компонента.

Если тексты кнопок авторизации или регистрации стереть при вызове компонента, то в шаблоне выводиться они не будут.
Пригодится этого, когда, например, нужно выводить только ссылку Вход, или как во втором случае компонент будет размещаться в футере и чтобы не влияла верстка на шаблон сайта надо скрывать ссылки, а вызываться окна авторизации будут по отдельным ссылкам из корзины.

2) Вариант авторизации через компонент bitrix:sale.basket.basket.line

Нам понадобится скопированный шаблон этого компонента и файл top_template.php

Копируется шаблон примерно по этому пути, куда скопируется в вашем случае запоминайте в окне копирования:

/bitrix/templates/eshop_bootstrap_green/components/bitrix/sale.basket.basket.line/template1/top_template.php

В этом файле замените родные ссылки авторизации:

<a href="<?=$arParams['PATH_TO_AUTHORIZE']?>?login=yes&backurl=<?=$currentUrl; ?>"><?=GetMessage('TSB1_LOGIN')?></a>
<a href="<?=$arParams['PATH_TO_REGISTER']?>?register=yes&backurl=<?=$currentUrl; ?>"><?=GetMessage('TSB1_REGISTER')?></a>

На новые, обязательно с классами и дата-атрибутами, иначе работать вызов форм не будет.

<div class="api_auth_ajax">
  <a class="api_link" rel="nofollow" href="#api_auth_login" data-header="<?=GetMessage('TSB1_LOGIN_HEADER')?>"><?=GetMessage('TSB1_LOGIN')?></a>
  <a class="api_link" rel="nofollow" href="#api_auth_register" data-header="<?=GetMessage('TSB1_REGISTER_HEADER')?>"><?=GetMessage('TSB1_REGISTER')?></a>
</div>

Добавьте к шаблону лэнги в подпапке: /lang/ru/template.php

$MESS['TSB1_LOGIN']           = "Войти";
$MESS['TSB1_LOGIN_HEADER']    = "Вход на сайт";
$MESS['TSB1_REGISTER']        = "Регистрация";
$MESS['TSB1_REGISTER_HEADER'] = "Регистрация";

И еще в футере шаблона сайта необходимо разместить компонент из шага 1 но без вывода ссылок, скрытый чтобы был.

<?$APPLICATION->IncludeComponent(
   "api:auth.ajax",
   "",
   Array(
      "LOGIN_BTN_CLASS" => "api_button api_button_small",
      "LOGIN_MESS_HEADER" => "Вход на сайт",
      "LOGIN_MESS_LINK" => "",
      "REGISTER_BTN_CLASS" => "api_button api_button_small",
      "REGISTER_MESS_HEADER" => "Регистрация",
      "REGISTER_MESS_LINK" => "",
      "RESTORE_MESS_HEADER" => "Вспомнить пароль"
   )
);?>

Если все сделали правильно, при клике по ссылкам Войти или Регистрация должны показываться соответствующие формы в модальном окне.

Доп. авторизация на странице /auth/

Это часто используемая страница, но может использоваться любая, на этой странице нам понадобится уже другой компонент, не в модальных окнах api:auth.ajax, а обычный: api:auth

По умолчанию в Битрикс эта страница выглядит так, комплексная авторизация включается с помощью константы define("NEED_AUTH", true);

<?
define("NEED_AUTH", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

$userName = CUser::GetFullName();
if (!$userName)
$userName = CUser::GetLogin();
?>
<script>
<?if ($userName):?>
BX.localStorage.set("eshop_user_name", "<?=CUtil::JSEscape($userName)?>", 604800);
<?else:?>
BX.localStorage.remove("eshop_user_name");
<?endif?>

<?if (isset($_REQUEST["backurl"]) && strlen($_REQUEST["backurl"])>0 && preg_match('#^/\w#', $_REQUEST["backurl"])):?>
document.location.href = "<?=CUtil::JSEscape($_REQUEST["backurl"])?>";
<?endif?>
</script>
<?
$APPLICATION->SetTitle("Авторизация");
?>
<p>Вы зарегистрированы и успешно авторизовались.</p>
<p><a href="<?=SITE_DIR?>">Вернуться на главную страницу</a></p>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Но с новой авторизацией должна быть такой:

<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetTitle("Вход/Регистрация");
?>
<? $APPLICATION->IncludeComponent(
'api:auth',
'',
array(
"SET_TITLE" => "Y",
"MESS_AUTHORIZED" => "Добро пожаловать на сайт!",
)
);
?>
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>

Здесь все, когда пользователь будет переходить по ссылкам из писем входом, регистрацией и т.д., данный компонент будет выводить соответствующие формы и переключать заголовки страницы.
Данный компонент слушает и укороченные ссылки, но об этом читайте в более подробной документации к модулю на моем сайте.

Доп. авторизация с помощью $APPLICATION->ShowAuthForm()

Данный метод выводит форму авторизации в компонентах или страницах, где нужна проверка прав доступа, срабатывает компонент bitrix:system.auth.authorize.
Чтобы вместо него выводить формы данного модуля, с модулем установится дефолтный шаблон этого компонента сюда:
/bitrix/templates/.default/components/bitrix/system.auth.authorize/.default/template.php

Содержимое этого шаблона:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
	die();
?>
<? $APPLICATION->IncludeComponent('api:auth', '', array()); ?>

Т.к. настройки основных компонентов данного модуля вынесены в админку, тут достаточно вызвать компонент api:auth и все, все настройки он возьмет из базы.

Но проблема может быть, если в вашем шаблоне сайта, не в дефолтном, будет скопирован шаблон этого компонента bitrix:system.auth.authorize, Битрикс сначала найдет его и будет выводить его шаблон.

Чтобы этого не происходило, либо удалите этот шаблоне, либо просто переименуйте как-то эту папку, чтобы Битрикс про него ничего не знал.

Все, на этом вся авторизация готова.

Возможные ошибки

Как всегда, из возможных проблем - jQuery:

1. либо не подключена,
2. либо неправильно подключена
3. либо много раз подключена
4. либо есть js-ошибки на странице

jQuery должна подключаться один раз, самой первой, перед всеми ее плагинами, без ошибок.

Как правильно подключать jQuery читайте в этих статьях:
[1C Битрикс] Как правильно подключать jQuery
[Ускорение сайтов 1С-Битрикс] Оптимизация/сжатие css и js Битрикс

Если будут приходить дубли писем, смотрите дубли почтовых шаблонов в админке.

Если не работают модальные окна, смотрите возможные js-ошибки в консоли панели веб-разработчика вашего браузера по F12, не надо мне про них писать, найдите сами и исправьте.

Если не работает авторизация/регистрации и т.д. смотрите ответы аякса так же в панели веб-разработчика вашего браузера по F12 на вкладке Сеть -> XHR
Чаще всего на сайтах неопытные разработчики делают какие-то РЕКВЕСТ перехватчики, либо модули из маркетплейса этим занимаются, и могут мешать работе компонентов.

Также может быть проблема в этом файле, где подключают различные классы, фреймворки, обработчики и т.д., что может мешать работе любого модуля.

/bitrix/php_interface/init.php

Не надо мне про это писать, смотрите сами,  пишите своему разработчику, находите что влияет и исправляйте, это не мои проблемы, я без понятия как на ваших сайтах в коде что-то сделано, я пока еще не обладаю такой телепатией.

Настройки авторизации главного модуля

Компоненты слушают некоторые настройки авторизации главного модуля, конкретно:

- Разрешить авторизацию через внешние сервисы
При включенной опции станет доступна авторизация и регистрация через внешние сервисы, пока это выводит стандартный компонент Битрикс, ничего прогать не нужно, автоматически появится в компонентах данного модуля

- Передавать пароль в зашифрованном виде
Рекомендую включить шифрование и сгенерировать Ключ шифрования, тогда все пароли при авторизации или регистрации будут передаваться на сайт через все промежуточные шлюзы в зашифрованном виде, что не позволит злоумышленникам с помощью снифферов собирать пароли от вашего сайта.
Ну, либо как минимум ваш сайт уже должен работать по защищенному протоколу https

- При регистрации добавлять в группу
Данная возможность учитывается, а также есть возможность выводить пользователю группы для регистрации, например: Оптовый покупатель, Розничный и т.д., настраивается в админке в разделе настроек Регистрации.

- E-mail является обязательным полем
Пока E-mail всегда обязательный, т.к. по нему работает вход.

- Запрашивать подтверждение регистрации по E-mail
Данная опция отправляет клиенту письмо по шаблону
API_AUTH_NEW_USER_CONFIRM

- Проверять E-mail на уникальность при регистрации
Тут думаю все понятно



Комментарии
Авторизуйтесь, чтобы оставлять комментарии
История обновлений
21 день назад
[x] Исправлены проблемы в логических полях
21 день назад
[x] Исправлены ошибки заполнения тега "param"
26 дней назад
[+] Добавлен новый раздел настроек для Ya.Metrika2, пока одну цель можно задавать, если кому нужны другие цели, пишитею [х] Исправлен вызов цели Яндекс.Метрики, сейчас без разницы, Ya.Metrika или Ya.Metrika2
35 дней назад
[+] Добавлена возможность переопределить свойства инфоблока для подсчета отзывов и рейтинга в модуле отзывов с помощью констант.
В файле /bitrix/php_interface/dbconn.php добавьте две константы со своими кодами свойств и все будет записываться:
define('API_REVIEWS_COUNT_PROP', 'API_REVIEWS_COUNT');
define('API_REVIEWS_RATING_PROP', 'API_REVIEWS_RATING');
39 дней назад
[+] Добавлена запись счетчика отзывов и рейтинга в свойства элемента инфоблока
Счетчик будет работать только если в настройках задана привязка к IBLOCK_ID и ELEMENT_ID
Автоматически у элемента создается два свойства API_REVIEWS_COUNT и API_REVIEWS_RATING
Теперь можно выводить свои рейтинги и счетчики в каталожных компонентах
[x] Исправлен счетчик отзывов, неактивные отзывы больше не считаются и для администраторов
[x] Ссылка на отзыв открывается в новом окне вместо алерта
[x] Временно отключено все кеширование
40 дней назад
[x] Фикс кнопки закрытия плагинов alert, modal, offcanvas
40 дней назад
[+] api_magnific_popup
40 дней назад
[+] Добавлен лайтбокс Magnific Popup для фото и видео
Обязательно обновите модуль TS Front-end framework до версии 1.12
42 дня назад
[x] Обновлен offcanvas
42 дня назад
[x] Добавлена очистка слеша справа в поле: http(s)-адрес сайта