Требования к системе авторизации
При проектировании расширения я руководствовался следующими принципами:
- Необходимость абстрагироваться от тонкостей авторизации через различные типы сервисов, использование адаптеров для каждого сервиса.
- Получение уникального идентификатора авторизации, который можно использовать для регистрации пользователя в нашем приложении.
- Возможность расширения стандартных классов авторизации для получения дополнительных данных о пользователе.
- Возможность работать с API социальных сетей путем расширения класса авторизации необходимого сервиса.
- Возможность настраивать список поддерживаемых сайтом сервисов, переопределять внешний вид виджета авторизации. Возможность использовать popup окно для авторизации без закрытия нашего приложения.
Расширение EAuth
В результате реализации всех требований выше на свет появилось расширение EAuth.
На данный момент расширение содержит:
Установка
Для начала необходимо
1 Зависимости
Расширение использует
2 Настройка
В конфигурацию
`main.php`
необходимо добавить:
Использование
В качестве примера возьмем стандартное приложение Yii, сгенерированное командой
`yiic webapp create`
, и добавим возможность авторизации через Google и Яндекс (OAuth провайдеров подключать не будем, чтобы не возиться с ключами). Посмотреть готовую
2 Редактирование SiteContoller
Вторым шагом будет изменение действия
`site/login`
. Добавим следующий код в начало действия:
3 Редактируем представление `protected/views/site/login.php`
Для использования стандартного виджета достаточно добавить пару строк после основной формы:
Для изменения внешнего вида виджета можно скопировать файл
`protected/extensions/eauth/views/auth.php`
`[theme_name]/views/EAuthWidget/auth.php`
4 Результат
После всех проделанных действий мы можем открыть наш сайт и перейти на страницу Login. После стандартной формы авторизации появятся иконки сервисов авторизации:
При клике, например, по иконке Google откроется popup окно:
Как делать
Что же делать веб-дизайнерам? Думаю, что скучная старая форма входа в систему просто прекрасна. Вот
А вот WordPress:
Простой, лаконичный, предсказуемый дизайн. Совместим с менеджерами паролей. Всё на месте. Вот некоторые соображения:
Список не исчерпывающий. Я не коснулся таких вещей, как вход через соцсети или двухфакторная аутентификация. Высказывайте свои наблюдения о других неправильных шаблонах, если что-то встречалось.
Как реализовать авторизацию через социальные сети во всплывающем окне?
Здравствуйте.
Написал класс для авторизации через социальные сети. Схема работы такая:
человек нажимает кнопку авторизации, в этом же окне происходит переадресация на страницу соц. сети и потом, после успешного входа, переадресация назад на сайт.
Но я хочу сделать так, как например, вот здесь – labirint.ru
Когда нажимаешь кнопку входа через социальную сеть, открывается новое окно, в нем происходит ввод данных и когда должна идти переадресация обратно на сайт, происходит закрытие этого окна и переадресация родительской страницы, с которо это окно было открыто.
Понимаю, что это происходит с помощью js, но не могу понять как это работает. Как открывается новое окно – ясно. А вот как оно закрывается в определенный момент и как происходит обновление родительской страницы?..
Компоненты регистрации и авторизации в модальном окне (битрикс)
Хочу рассказать о моем способе решения задачи с авторизацией в модальном окне (Битрикс). Перерыв кучу ссылок, так и не нашел более-менее изящного подхода, поэтому предлагаю вам свой велосипед.
Для начала создадим страничку, которая будет отдавать формы авторизации/регистрации/забытого пароля по параметру в адресной строке.
Итак, выделяем целый раздел /auth/
/auth/index.php
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php";
$APPLICATION->AuthForm('', false, false);
Коротко об $APPLICATION->AuthForm — мы получаем отдельные компоненты по параметру в url. Напримерт /auth/?register=yes — выведет нам форму регистрации.
Дальше нам нужны модальные окна, для этого воспользуемся библиотекой Битрикс, а также нужен jquery
CJSCore::Init("popup", "jquery");
Теперь js. Все методы я завернул в один объект
var auth = {
popup: null, //наш popup
showPopup: function(url) {
this.popup = BX.PopupWindowManager.create("modal_auth", '', {
closeIcon: true,
autoHide: true,
offsetLeft: 0,
offsetTop: 0,
overlay : false,
draggable: {restrict:true},
closeByEsc: true,
content: auth.getForm(url), //получаем контент из другого метода
overlay: {backgroundColor: 'black', opacity: '10' },
events: {
onPopupClose: function(PopupWindow) {
PopupWindow.destroy(); //удаление из DOM-дерева после закрытия
}
}
});
this.popup.show();
},
getForm: function(url) { //отдаем форму по запросу
var content = null;
$.ajax({
url: url,
method: "GET",
async: false,
success: function (data) {
content = data;
}
});
return content;
}
}
Дальше необходимо кастомизировать шаблоны компонентов:
system.auth.authorize
system.auth.forgotpasswd
system.auth.registration
Все ссылки приводим к виду
<a href="#" onclick="auth.set('/auth/?forgot_password=yes')" rel="nofollow"><b>Забыли свой пароль?</b></a>
и соответственно нам необходим метод для перехода между формами auth.set
set: function(url) {
var form = auth.getForm(url);
auth.popup.setContent(form); //заменим текущий контент модального окна
auth.popup.adjustPosition(); //отцентруем
}
Все input[type=submit] превращаем в input[type=hidden]
и вставляем ссылки для сабмита форма:
<a href="#" onclick="auth.submit('/auth/', '.b-authorize')">Войти</a>
submit: function(url, form) {
$.post(url, $(form).serialize()).done(function(data) { //заберем все поля формы и запросим контент
auth.popup.setContent(data); //заменяем контент модального окна
});
}
При желании можно обернуть в компонент и подключать в шаблоне сайта.
Не помещайте авторизацию в модальные формы
Hertz и куча других сайтов помещают форму входа в модальное окно. У такого подхода две проблемы:
Не разделяйте форму входа на несколько страниц
Не скрывайте поля
Сайт Delta скрывает поле «Фамилия». Я так понимаю, чтобы сделать интерфейс чище, введя элементы прогрессивного дизайна. Проблема в том, что поле является обязательным, а менеджеры паролей не могут автоматически его заполнить. Пользователи должны сначала заполнить и выйти из другого поля, чтобы появилось это. Просто одно дополнительное, ненужное препятствие, чтобы человек мог войти в систему.
Экран входа в MacOS таким же образом прячет поле пароля, чтобы «очистить» UI (и я также предполагаю, чтобы подтолкнуть пользователей к входу через TouchID), но эта чистота, на мой взгляд, может запутать людей.
Не шутите с магическими ссылками
Возможно, это началось с Slack, но теперь и другие программы, такие как Notion (который я люблю, кстати), отправляют на электронную почту временный пароль для входа в систему. Могу оценить хитрость этого шаблона, поскольку он избавляет от страданий несчастных пользователей, которым трудно запомнить ещё один пароль, и не нужно создавать всю необходимую инфраструктуру для восстановления забытого пароля. Но.
- Эта схема невероятно утомительна. 1. Ввести email в форму входа. 2. Открыть новую вкладку или переключить программу. 3. Открыть почтовый ящик. 4. Найти сообщение от сервиса (если вы не отвлеклись на другие письма). 5. Открыть сообщение. 6. Скопировать пароль-абракадабру. 7. Вернуться на сайт. 8. Вставить туда абракадабру. 9. Отправить форму. Блин.
- Это вообще не работает с менеджерами паролей, что невероятно раздражает. В дизайне мы много говорим о согласованности. Но речь идёт не только о согласованности в собственной экосистеме, но и со всем остальным интернетом, ёлки-палки.
- Это заставляет пользователей осваивать новое поведение: пользователи выучили определённые шаблоны (вход, проверка, навигация и т. д.), многократно используя их во многих приложениях в течение многих лет. Я не говорю, что никогда не следует вводить новшества. Но важно признать, что пользователи приходят к вашему продукту с грузом заработанных знаний о том, как использовать интернет. Когда мы пытаемся стать слишком умными, то заставляем пользователей изучать новые шаблоны, что тормозит людей (по крайней мере, с самого начала).
Подключение скрипта всплывающего окна
Откройте индексный файл шаблона index.php, нахоящийся по следующему пути:
templates/ваш-шаблон/index.php
Опуститесь в самый низ файла и перед закрывающимся тегом </body> вставьте следующий код:
Создание кнопки/ссылки
Последним шагом будет создание кнопки, при клике по которой будет появляться всплывающее окно с формой авторизации на сайте.
Для новичков лучшим вариантом будет создать модуль тип HTML и в нём поместить html-код кнопки авторизации. Модуль сделать доступным только для Public и гостей, чтобы не показывать его для авторизированных на сайте пользователей.
Более опытные могут написать php-код с проверкой на авторизированного пользователя и вставить код в индексный файл шаблона.
HTML-код кнопки:
Вы спокойно можете стилизовать кнопку добавив ей классы и стили. Например если у вас шаблон на бутстрапе, то кнопку можно сделать так:
Создание модуля авторизации
После того как мы создали модальное окно с позицией в шаблоне, нужно создать сам модуль для авторизации.
Для этого в админке открываем менеджер модулей и создаём новый модуль тип – Вход на сайт. Можно использовать модули авторизации из других расширений: SLogin, Kunena, Community Builder и др.
Если у вас уже создан модуль авторизации, можно просто отредактировать его, изменив в нём позицию.
Итак, основная настройка в модуле необходимая для нас – это позиция. Вписываем позицию login. Изначально в списке позиций такой нет. Нужно просто прописать её вручную:
Так же проверьте чтобы модуль был опубликован.
Ссылки
UPDATE:
в пункте «3.2 Настройка» не хватало расширения loid, добавил.
UPDATE 2:
Актуальная версия и инструкция по настройке доступны на
Форма регистрации на сайте: 60 бесплатных html5 и css3 шаблонов
Вам нужна форма регистрации на сайте? Мы составили список, состоящий из 60 бесплатных форм авторизации, которые вы можете использовать на своем WordPress-сайте, в блоге, на форуме и т.д. Каждая форма тщательно протестирована, чтобы можно было гарантировать ее работоспособность и доступность исходного кода.
Формы из этого списка созданы с помощью HTML / CSS. Но в данном случае речь идет о лучшем плагине для настройки пользовательского интерфейса WordPress. Он поставляется с несколькими шаблонами, которые можно дополнительно настроить в соответствии с дизайном сайта. С помощью этого плагина вы сможете избавиться от скучной страницы входа в WordPress.
Простая, но креативная форма входа, созданная с помощью HTML и CSS3. Ее также можно использовать и как форму регистрации. Это наш любимый шаблон из представленных в этом списке.
Мы поискали в интернете действительно крутые формы авторизации, но найти такие оказалось непросто. Поэтому решили представить вам собственные. Вот 20 форм входа, разработанных нашей командой.
Простая, креативная и яркая форма входа с градиентным фоном. Вы можете использовать ее для любых целей, таких как авторизация в веб-сервисе, мобильном или десктопном приложении.
Скачать
Предварительный просмотр
Минималистичная и изысканная форма входа с кнопкой, градиентной заливкой, а также с анимацией и логотипом. Используйте ее, изменив необходимые элементы.
Скачать
Предварительный просмотр
Страница входа с фоновым изображением, тенью и эффектом наведения для кнопки входа в систему.
Скачать
Предварительный просмотр
Вы можете скачать эту веб-форму и использовать по своему усмотрению. Она является полностью адаптивной.
Скачать
Предварительный просмотр
Прекрасная и современная форма с опциями входа через Facebook или Google. Ее кнопки имеют красивые эффекты наведения, что позволяет предоставить пользователям прекрасный опыт взаимодействия.
Скачать
Предварительный просмотр
Если веб-страница аккуратная и красивая, форма входа не должна отличаться от ее дизайна. Вот форма, которая точно оправдает ваши ожидания.
Скачать
Предварительный просмотр
Форма с тремя вариантами входа в учетную запись: Facebook, Twitter или адрес электронной почты. А если у пользователя еще нет учетной записи, можно связать форму со страницей регистрации.
Скачать
Предварительный просмотр
Еще одна современная, модная и красивая форма входа в систему. Она особенно хорошо смотрится на мобильных устройствах.
Скачать
Предварительный просмотр
Если хотите уйти от чисто белого или одноцветного дизайна, вам стоит обратить внимание на эту форму. Она поддерживает добавления фонового изображения или наложения градиента. Также есть опция входа через Facebook или Google.
Скачать
Предварительный просмотр
Это полная противоположность предыдущему варианту. Она выглядит минималистично, но в то же время очень аккуратно.
Скачать
Предварительный просмотр
Вместо того чтобы создавать форму с нуля, вы можете использовать готовый к использованию великолепный шаблон – такой как этот.
Скачать
Предварительный просмотр
Фоновое изображение с наложением синей тени, имя с аватаром и поля ввода – это форма авторизации №12. Для кнопки входа в систему добавлен эффект наведения.
Скачать
Предварительный просмотр
Шаблон с разделением экрана, в котором одна половина предназначена для изображения, а другая – для формы.
Скачать
Предварительный просмотр
В этой подборке есть и простые, и более сложные формы входа. А шаблон №14 – из числа минималистичных.
Скачать
Предварительный просмотр
Довольно минималистичная форма, но в ее верхней части можно добавить баннер. Благодаря этой небольшой опции можно сделать форму более привлекательной.
Скачать
Предварительный просмотр
Это форма входа с полноэкранным изображением, поверх которого размещаются поля для ввода логина и пароля, а также кнопка с эффектом наведения.
Скачать
Предварительный просмотр
Чтобы сделать форму более персонализированной, можно использовать этот шаблон. Он включает в себя изображение, расположенное сбоку.
Скачать
Предварительный просмотр
Если хотите выделиться и сохранить оригинальность, используйте форму входа №18. Кому-то нравятся простые страницы входа, в то время как другие хотят иметь дополнительные преимущества.
Скачать
Предварительный просмотр
Яркая, энергичная и захватывающая – это все о данной форме входа. Она полностью адаптивная, оптимизирована под мобильные устройства и совместима со всеми основными веб-браузерами.
Скачать
Предварительный просмотр
Градиентный фон, черная кнопка с эффектом наведения, поля для ввода логина и пароля, а также раздел «Забыли пароль?» Все это есть в форме авторизации №20.
Скачать
Предварительный просмотр
Форма скрыта, если не нажата ссылка «Войти». Отличная функция для сайтов, которые хотят обойтись без отдельной страницы для входа. Вы можете отобразить форму в любом месте сайта с помощью этого мощного инструмента.
Скачать
Разработано для форм подписки с использованием вкладок и меток.
Скачать
Что раньше останавливало людей, когда они хотели авторизоваться на WordPress -сайте так это слишком простой внешний вид. В этой форме сохранен популярный дизайн, но к нему добавлено цветовое оформление.
Скачать
Когда вы нажмете кнопку “Click me”, расположенную в правом верхнем углу, с помощью анимации форма входа будет преобразована в форму регистрации.
Скачать
Это форма, созданная с использованием SCSS. Расширение CSS, которое добавляет базовому языку новые возможности и элегантность. Оно позволяет использовать переменные, вложенные правила, встроенный импорт и многое другое.
Скачать
Это анимированная форма входа, а верхняя часть “Hey you, Login already” преобразуется в форму при нажатии кнопки.
Скачать
Пример того, как создать простую форму входа в систему с помощью HTML5 и CSS3. В ней применяются псевдо элементы (:after и :before) для создания эффекта нескольких страниц. Эта форма использует HTML5, чтобы упростить валидацию и представление данных.
Скачать
Если вы ввели неправильный пароль, то будете уведомлены об этом с помощью красивого эффекта дрожания. Простое и эффективное решение.
Скачать
Блочная форма авторизации – это небольшой сюрприз.Попробуйте ввести имя пользователя “admin” и пароль “1234”, чтобы увидеть ее в действии.
Скачать
Аккуратная небольшая форма входа.Когда вы нажмете кнопку “LOGIN”, расположенную слева, будет отображена форма авторизации.
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Пожалуйста, оставьте ваши комментарии по текущей теме статьи. За комментарии, подписки, дизлайки, отклики, лайки низкий вам поклон!
Пожалуйста, оставляйте свои комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, отклики, подписки, лайки, дизлайки!
Чего не надо делать
Вот некоторые примеры, которых я бы избегал.
Заключение
Вот и все, система авторизации готова к работе. Что еще можно делать с расширением: