Skip to content

Latest commit

 

History

History
45 lines (39 loc) · 3.66 KB

ex1-20.md

File metadata and controls

45 lines (39 loc) · 3.66 KB

[ex1-20] Реализовать авторизацию: типовые сценарии, соц.сети и captcha.

Решение

  • Настройки в админке:

    • Регистрация: Настройки главного модуля > Регистрация новых пользователей
      • Позволять ли пользователям регистрироваться самостоятельно? [X]
      • Использовать CAPTCHA при регистрации [X]
      • Страница регистрации (для системного компонента авторизации) - /login/index.php?register=yes (чтобы не прописывать в компоненте, т.к. по заданию, отдельной страницы регистрации не будет)
  • Настройки Captcha (переопределям количество попыток):

    • Настройки > Пользователи > Группы пользователей > Все пользователи (в том числе неавторизованные) > Безопасность
      • Количество попыток ввода пароля до показа CAPTCHA - 1
  • Соц.сети:

    • Настройки > Настройки продукта > Настройки модулей > Социальные сервисы > Авторизация > Разрешить регистрацию новых пользователей через соцсети [X]
  • Процесс:

    • Авторизация - /login/index.php - NEED_AUTH (данная страница уже есть в типовом шаблоне)
      • Забытый пароль - /login/index.php?forgot_password=yes
      • Регистрация - /login/index.php?register=yes - без отдельной страницы (/login/reg.php (main.register))
    • Создаем ещё 1 страницу - Профиль - /login/user.php (Параметры пользователя - main.profile)
    • Копируем к себе типовой шаблон компонента (system.auth.form) - \bitrix\components\bitrix\system.auth.form\templates.default, чтобы брать переменные для образца, блоки "Captcha" и "Авторизация через соц.сети"
    • Переносим шаблон компонента (system.auth.form), который дан в материалах в свой шаблон. Вставляем вызов компонента в header, начинаем дорабатывать.
    • Все языковые фразы берём из lang-файлов
  • Доработка всплывающей формы авторизации:

    • - Ссылка на профиль
    • - Имя автор.пользователя
    • - Логин автор.пользователя
    • - Ссылка на регистрацию
    • - Ссылка на забытый пароль
    • Для logout - GetCurPageParam (смотрим в справке пример для logout, по формированию ссылки выхода)
 <a href="<?echo $APPLICATION->GetCurPageParam("logout=yes", array(
     "login",
     "logout",
     "register",
     "forgot_password",
     "change_password"));?>">Закончить сеанс (logout)</a>