Требования к системе авторизации
При проектировании расширения я руководствовался следующими принципами:
- Необходимость абстрагироваться от тонкостей авторизации через различные типы сервисов, использование адаптеров для каждого сервиса.
- Получение уникального идентификатора авторизации, который можно использовать для регистрации пользователя в нашем приложении.
- Возможность расширения стандартных классов авторизации для получения дополнительных данных о пользователе.
- Возможность работать с 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 окно:
Какие ошибки часто допускают веб-дизайнеры и верстальщики
Самая распространенная ошибка в пользовательском интерфейсе — это спрятанная форма авторизации. Обычно ее вставляют по ссылке в окне регистрации. Например, чтобы ввести свои данные и открыть личный кабинет пользователю приходится искать форму ввода, переходить по гиперссылке (совершать 2-3 действия вместо 1).
Какой должна быть идеальная форма для авторизации
Выделим ключевые особенности правильной формы авторизации, которую описывают пользователи:
Настройка smtp-авторизации в microsoft outlook
- В меню “Сервис->Учетные записи” выбрать Вашу учетную запись, нажать кнопку“Свойства”.
- На закладке “Серверы” поставить галочку “Проверка подлинности пользователя”. Нажать кнопку “Настройка”.
- Выбрать пункт “Как на сервер входящей почты”.
- Нажать “OK”, нажать “OK”, нажать “Закрыть”. Программа настроена.
Проверено на версии MS Outlook 2000 v.9.0.0.3011
Настройка smtp-авторизации в microsoft outlook express
- В меню “Сервис->Учетные записи” выбрать Вашу учетную запись, нажать кнопку“Свойства”.
- На закладке “Серверы” поставить галочку “Проверка подлинности пользователя”. Нажать кнопку “Настройка”.
- Выбрать пункт “Как на сервер входящей почты”.
- Нажать “OK”, нажать “OK”, нажать “Закрыть”. Программа настроена.
Проверено на версии MS Outlook Express v.6.0.0.2900.5512
Настройка smtp-авторизации в the bat!
- В меню “Ящик->Свойства почтового ящика” выбрать закладку “Транспорт”.
- В секции “Отправка почты” нажать кнопку “Аутентификация”.
- В открывшемся окне выбирать “Аутентификация SMTP (RFC-2554)”, выбирать “Использовать
параметры получения почты (POP3/IMAP)”.
Результат должен выглядеть так:
- Нажать “OK”, нажать “OK”. Программа настроена.
Проверено на The Bat! v.3.65
Ссылки
UPDATE:
в пункте «3.2 Настройка» не хватало расширения loid, добавил.
UPDATE 2:
Актуальная версия и инструкция по настройке доступны на
Форма авторизации на простом html с пояснениями
Добрый день. Конечно всем эта тема знакома уже много лет, но она будет кому то полезна особенно новичкам, которые ищут форму авторизации. Формы бывают разные и я буду добавлять новые, чтобы кто то не тратил много времени на поиски готовых решений. Это будут формы авторизации из двух полей, форма авторизации по номеру телефона, форма авторизации с “галочкой” запомнить, а так же формы авторизации с капчей от гугл. Еще добавлю, что все формы будут иметь уникальные классы блоков, что позволит их использовать на любых проектах, чтобы не ломать действующие возможные стили и пересечения классов блоков.
Базовая разметка HTML для простой формы авторизации:
<div class="form_auth_block">
<div class="form_auth_block_content">
<p class="form_auth_block_head_text">Авторизация</p>
<form class="form_auth_style" action="#" method="post">
<label>Введите Ваш имейл</label>
<input type="email" name="auth_email" placeholder="Введите Ваш имейл" required >
<label>Введите Ваш пароль</label>
<input type="password" name="auth_pass" placeholder="Введите пароль" required >
<button class="form_auth_button" type="submit" name="form_auth_submit">Войти</button>
</form>
</div>
</div>
В данной разметке мы создали простой блок родитель в котором будут храниться все остальные блоки, как видно их не так много. Блоки названы одноименными классами, так легче понять о чем идет суть и какие стили к чему относятся в структуре. Обратите внимание на type для двух input, поскольку первый является полем для ввода имейл адреса его тип выбран как email это позволит пользователю в простой проверке браузера избежать ошибки к примеру в отсутствии @ или попросту точки перед доменной зоной.
Второй input имеет тип password это скрывает пароль от глаз в виде точек. Это не так критично, многие предпочитают тип text, но правильнее все же будет использовать тип password, о других нюансах выбора типа поля input будет рассказано в другой статье.
Placeholder — простым словом “тег подсказка”, он дает возможность указать для пользователя что ему требуется сделать, что разрешено, а что нет. Можно указать любое значение. Обратите внимание что тег placeholder можно изменить с помощью стилей CSS.
Обратите внимание что в input так же задано свойство name, оно необходимо для последующей работы с формой, когда дело доходит до ее обработки на сервере. Это значение нужно делать уникальным и желательно схожим по названию отражающем его сущность. Если это форма авторизации, то логичнее всего задать name=”auth_email”, таким образом мы будем понимать что это свойство отвечает за передачу email адреса из формы авторизации. Многие новички в последующем делают частую ошибку работая с обработкой этих данных на сервере, особенно работая по паттерну MVC, когда в контроллере срабатывает событие к примеру submit а данные свойства name остаются везде одинаковые к примеру name=”email”.
Простые стили к форме авторизации без адаптации под мобильные устройства:
.form_auth_block{
width: 500px;
height: 500px;
margin: 0 auto;
background: url(http://www.dailycompass.org/wp-content/uploads/2022/01/Bubbles.jpg);
background-size: cover;
border-radius: 4px;
}
.form_auth_block_content{
padding-top: 15%;
}
.form_auth_block_head_text{
display: block;
text-align: center;
padding: 10px;
font-size: 20px;
font-weight: 600;
background: #ffffff;
opacity: 0.7;
}
.form_auth_block label{
display: block;
text-align: center;
padding: 10px;
background: #ffffff;
opacity: 0.7;
font-weight: 600;
margin-bottom: 10px;
margin-top: 10px;
}
.form_auth_block input{
display: block;
margin: 0 auto;
width: 80%;
height: 45px;
border-radius: 10px;
border:none;
outline: none;
}
input:focus {
color: #000000;
border-radius: 10px;
border: 2px solid #436fea;
}
.form_auth_button{
display: block;
width: 80%;
margin: 0 auto;
margin-top: 10px;
border-radius: 10px;
height: 35px;
border: none;
cursor: pointer;
}
::-webkit-input-placeholder {color:#3f3f44; padding-left: 10px;} // Это стили для placeholder
::-moz-placeholder {color:#3f3f44; padding-left: 10px;} // Это стили для placeholder
:-moz-placeholder {color:#3f3f44; padding-left: 10px;} // Это стили для placeholder
:-ms-input-placeholder {color:#3f3f44; padding-left: 10px;} // Это стили для placeholder
И вот что у нас получилось в итоге:
Простая форма авторизации из двух полей и небольшим количеством стилей. Давайте усложним задачу и сделаем эту форму более отзывчивой и добавим ей немного мобильной адаптации.
Заключение
Вот и все, система авторизации готова к работе. Что еще можно делать с расширением: