Форма авторизации на сайт — как сделать самостоятельно
Пояснения к статье:
- <link>, <script> — HTML теги. Используются для подключения стилей и скриптов.
- <div>, <h3>, <input> — Парные HTML теги.
- <Form> — Общий блок-контейнер. Необходим для создания формы.
- {Margin: 0 auto} — абсолютное выравнивание по центру. Работает за счет изменения внешних отступов, делает их ровными.
Здравствуйте, в этой статье мы расскажем вам о том, как создать форму авторизации для входа на сайт. Для этого нам понадобятся просто HTML и CSS, JavaScript будем использовать по минимуму.
Панель авторизации — очень важная часть любого сайта. Она позволяет пользователю зайти в свой личный кабинет на сайте, если такой имеется. На некоторых сайтах авторизация дает дополнительные привилегии для посетителя, взять то же написание комментариев.
Но в этой статье мы создадим необычную форму регистрации. Сегодня мы покажем вам конструкцию из двух блоков, плавно перелистывающихся.
Итак, мы создадим 2 блока — для авторизации и регистрации. При переключении между блоком форма будет плавно скользить. Ещё одним преимуществом является то, что это добавит интерактивности для вашего сайта.
Форма авторизации: HTML разметка.
Начнем с «HTML», первое что нам нужно сделать, так это подключить все необходимые инструменты — JavaScript и CSS. Для этого создадим 2 тега в блоке head: script(для подключения скриптов, с помощью атрибута «src») и «link»(для подключения стилей, с помощью атрибута «href»).
Теперь можно приступать к разметке нашей формы, открываем тег body. Внутри мы создадим небольшую конструкцию:
- Внешний блок с классом pinkbox — тег <div>.
- Блоки для авторизации и регистрации с классами signup и signin.
- Заголовок и форма с различными элементами — теги <form>, <h3>, <input> и т.д. Находятся внутри каждого блока.
Это была первая часть. Мы только что создали разметку для активного слайдера, который будет расположен поверх другого. Теперь нужно сделать разметку для другого слайдера.
Здесь уже другая конструкция. Нам также придется использовать изображения(тег <img>).
После того, как мы создали все блоки, закрываем тег <body> и все готово.
Форма авторизации: стилизация. CSS
Перед тем, как стилизировать все наши элементы и создавать отличнейший дизайн, нам необходимо прописать общие свойство для главного контейнера.
Из свойств мы применим только центрирование(margin 0 auto), изменим позиционирование, размеры и расположение по координатам.
После этого приступаем к стилизации слайдеров. Здесь будут применены стандартные свойства CSS, такие как фон, изменение ширины и высоты, рамки, тени и т.д.
После стилизации слайдера, нам необходимо провести изменение небольших деталей, а также поработать над дизайном высшего блока.
Ваш CSS код должен выглядеть примерно так:
После этого нам нужно задать стилизацию для формы, а также для псевдоклассов активных форм.
Форма авторизации на сайт: JavaScript
Как мы говорили в самом начале, JavaScript особо не потребуется. Всё что нам нужно — пара скриптов для создания анимации и переключения между слайдерами. Это очень важная часть, но кода там не особо много.
Заключение
Теперь, если вам понадобится создать собственную панель регистрации или авторизации на сайт, вы знаете как это сделать. Огромным преимуществом станет то, то вам не нужно 2 вкладки для полей форм, все можно сделать с помощью слайдера.
Если хотите более детально разобраться в работе слайдера, а также в его конструкции — смотрите исходники. Желаем удачи в изучении!
Теги:
CSS html JavaScript Уроки
Регистрация пользователей · Django в примерах
Давайте создадим простое представление, чтобы разрешить регистрацию пользователей на нашем сайте. В начале необходимо создать форму, чтобы позволить пользователю ввести логин, его реальное имя и пароль.
from django.contrib.auth.models import User class UserRegistrationForm(forms.ModelForm): password = forms.CharField(label='Password', widget=forms.PasswordInput) password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput) class Meta: model = User fields = ('username', 'first_name', 'email') def clean_password2(self): cd = self.cleaned_data if cd['password'] != cd['password2']: raise forms.ValidationError('Passwords don\'t match.') return cd['password2']
Мы создали модель form для модели User
. В нашей форме мы включаем только поля username, first_name и email. Эти поля будут проверены на основе соответствующих полей модели. Например, если пользователь выбирает имя пользователя, которое уже существует, он получит ошибку проверки.
clean_<fieldname>()
для любого из полей формы, чтобы очистить значение или вызвать ошибки проверки формы для конкретного поля. Формы также включают общий метод Джанго также предоставляет форму UserCreationForm, которую можно использовать, которая находится в django.contrib.auth.forms и очень похожа на созданные нами формы.
Отредактируйте файл views.py приложения account и добавьте в него следующий код:
from .forms import LoginForm, UserRegistrationForm def register(request): if request.method == 'POST': user_form = UserRegistrationForm(request.POST) if user_form.is_valid(): # Create a new user object but avoid saving it yet new_user = user_form.save(commit=False) # Set the chosen password new_user.set_password(user_form.cleaned_data['password']) # Save the User object new_user.save() return render(request, 'account/register_done.html', {'new_user': new_user}) else: user_form = UserRegistrationForm() return render(request, 'account/register.html', {'user_form': user_form})
Представление для создания учетных записей пользователей является довольно простым. Вместо сохранения необработанного пароля, введенного пользователем, мы используем метод set_password() модели User, обрабатывающей шифрование для сохранения безопасности.
Теперь отредактируйте файл urls. И наконец создайте шаблон register.html в каталоге шаблонов account/ и добавьте в него следующий код: Добавьте еще один шаблон в ту же директорию и назовите его register_done.html: Откройте в браузере страницу http://127. Заполните все поля и нажмите на кнопку Create my account. Если все поля пройдут валидацию вы увидите сообщение об удачной регистрации пользователя: Нажмите на ссылку log in и войдите под именем нового пользователя, чтобы убедиться в работоспособности нашего приложения. Теперь мы можем добавить кнопку регистрации в шаблон входа на сайт. Измените шаблон registration/login.html и замените эту строку: …на эту: Мы сделали страницу регистрации доступной со страницы входа. Страница входа — это одна из наиболее важных страниц веб-сайта/приложения, которая позволяет авторизованным пользователям получать доступ ко всему сайту или его части. register/$’, views.register, name=’register’),
{% extends "base.html" %}
{% block title %}Create an account{% endblock %}
{% block content %}
<h2>Create an account</h2>
<p>Please, sign up using the following form:</p>
<form action="." method="post">
{{ user_form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Create my account"></p>
</form>
{% endblock %}
{% extends "base.html" %}
{% block title %}Welcome{% endblock %}
{% block content %}
<h2>Welcome {{ new_user.first_name }}!</h2>
<p>Your account has been successfully created. Now you can <a href="{% url "login" %}">log in</a>.</p>
{% endblock %}
0.0.1:8000/account/register/ . Вы должны увидеть страницу регистрации:
<p>Please, use the following form to log-in:</p>
<p>Please, use the following form to log-in. If you don't have an account <a href="{% url "register" %}">register here</a></p>
15+ страниц входа в HTML с кодом CSS — CodeHim
Этот набор форм регистрации/входа имеет разные типы страниц входа. Каждая страница входа имеет различные функции и функции. Вы можете просмотреть демонстрацию и загрузить исходный код HTML и CSS для страницы входа, которая вам подходит.
1. Простая страница входа в систему в формате HTML
Ниже приведена простая форма входа с чистым пользовательским интерфейсом для входа в систему. Этот шаблон формы входа имеет заголовок, поле ввода для электронной почты и пароля, ссылку на страницу с забытым паролем. и две кнопки «зарегистрироваться» и «войти». Кроме того, он имеет достойную цветовую схему, вдохновленную Material Design. Цветовая схема может быть настроена в соответствии с вашими потребностями.
Автор: Nitesh Kumar Niranjan
Скачать демоверсию
2. Страница входа с фоновым изображением
Следующая страница входа имеет фоновое изображение с размытым эффектом. Он использует значки изображений PNG внутри входных данных электронной почты и пароля. Входы и дизайн кнопки входа в систему с выравниванием по центру. По сути, эта форма входа охватывает всю страницу для фонового изображения. В любом случае, вы можете установить конкретную оболочку, если хотите использовать ее с фиксированной шириной и высотой.
Автор: Tobias Rickmann
Скачать демоверсию
3. Страница входа в HTML5 с проверкой
Если вы хотите создать простую страницу входа в HTML5 с проверкой, то вам вполне подойдет следующая форма. Он использует атрибуты проверки HTML5 и псевдоклассы CSS для проверки имени пользователя и электронной почты. Кроме того, эта форма входа имеет простой и понятный дизайн. В любом случае, вы можете настроить его в соответствии со своим шаблоном, изменив значения CSS.
Автор: Roary Tubbs
Загрузка демоверсии
4. Страница входа с именем пользователя и паролем
Иногда шаблону веб-сайта требуется дизайн страницы входа со значком поля имени пользователя и пароля. Следующая страница входа выполнена в черно-розовой цветовой гамме. Он использует значки SVG внутри поля имени пользователя и пароля. Этот шаблон страницы входа лучше всего подходит для темных тем и веб-страниц.
Автор: Марко Бидерманн
Скачать демоверсию
5. Страница входа в систему в формате HTML с кодом CSS
Вам нужен многофункциональный дизайн страницы входа? хорошо, эта страница входа вполне соответствует вашим потребностям. Он поставляется со всеми необходимыми элементами, которые должны быть на идеальной странице входа. Он имеет стильные кнопки для входа через профили Facebook и Twitter.
Макет этой страницы входа разделен на две части, одна из которых показывает большой заголовок и основное руководство по входу, а другая часть отображает форму входа. Форма входа содержит заголовок, ссылку на регистрационную форму, поля ввода, флажок «Запомнить пароль» и кнопку входа.
Автор: Claudia Romano
Скачать демоверсию
6. Форма входа и регистрации в HTML
Ниже представлена многофункциональная форма входа и регистрации, созданная на HTML, CSS и jQuery. По сути, он отображает две кнопки для входа и регистрации. Когда пользователь нажимает кнопку, открывается всплывающее модальное окно с вкладками для входа и регистрации. Пользователи могут легко переключаться между вкладками «Войти» и «Новая учетная запись».
Пользовательский интерфейс этой страницы входа в систему также привлекателен, он поставляется с полями ввода со значками и функцией отображения/скрытия пароля. Кроме того, он хорошо разработан с помощью jQuery для проверки полей ввода перед отправкой. Он показывает специально разработанные всплывающие подсказки об ошибках в случае недопустимого имени пользователя, электронной почты или пароля.
Автор: Эмиль. Он создан с помощью HTML и CSS со всеми необходимыми элементами, которые требуются для отправки студентом. По сути, дизайн действительно прост, но его можно настроить с помощью дополнительного CSS в соответствии с вашими потребностями.
Автор: Рошан
Скачать демонстрационную версию
8. Шаблон формы входа и регистрации
Это еще одна форма с вкладками с параметрами входа и регистрации. Эта страница регистрации/входа использует Bootstrap для адаптивного дизайна и jQuery для проверки входных данных. Тело страницы содержит фоновое изображение, а форма имеет слегка прозрачный темный цвет. Цветовая схема по умолчанию представлена черно-желтой темой. Однако вы можете установить собственный цвет в соответствии с шаблоном вашего веб-сайта, если хотите интегрировать эту форму.
Автор: Petia
Скачать демоверсию
9. HTML-страница входа с Bootstrap
Нужен чистый и отзывчивый дизайн страницы входа? следующая страница входа построена с помощью Bootstrap 4 с желтой цветовой схемой. Не волнуйтесь, если вам не нравится желтый цвет. Вы можете просто изменить цвет в соответствии с вашими потребностями. В любом случае, дизайн этой формы входа полностью построен с использованием компонента формы Bootstrap.
Автор: Ганеш
Загрузка демо-версии
10. HTML-страница входа с проверкой JavaScript
Стильная форма входа, которая проверяет поля ввода и отображает настраиваемые сообщения об ошибках. Этот шаблон формы входа использует подключаемый модуль проверки jQuery для проверки полей ввода. Общий пользовательский интерфейс этой формы входа связан с Material Design. Но входные данные поставляются с дополнительной анимацией рисования границы в событии фокуса.
Автор: ioSkye
Скачать демоверсию
11.

В настоящее время наблюдается тенденция использования визуальных элементов плоского дизайна. Следующая простая форма входа — лучший выбор для интеграции в шаблоны плоского дизайна. По сути, он имеет чистый минималистичный дизайн со светло-серой и зеленой цветовой гаммой. Элементы ввода и кнопка входа в форму идеально оформлены с помощью CSS. Вы можете легко установить собственный цвет фона для этой формы входа, внеся небольшие изменения в CSS.
Автор: Айгарс Силкалнс
Скачать демоверсию
12. Классическая форма входа
Следующая форма входа поставляется с градиентным цветом фона CSS и анимированными элементами ввода. По сути, это минимальный классический шаблон формы входа, который лучше всего подходит для небольших веб-проектов и гибридных мобильных приложений. Вы можете установить собственный цвет фона градиента и интегрировать его в свои проекты.
Автор: Bridges
Загрузка демоверсии
13.

Если вы работаете над веб-проектом, этот экран входа может быть вам полезен. Он поставляется с анимированным фоном, который взаимодействует с движением мыши.
Автор: Jay. В любом случае, иногда вам нужен HTML-компонент без CSS для различных целей. Если вам нужна простая форма входа без CSS, вам может подойти следующая форма.
Автор: Jun
Загрузка демоверсии
Связанные фрагменты кода:
Создание системы авторизации с помощью HTML, CSS и JavaScript
5 февраля 2020 г.Я создал систему входа в систему с помощью HTML, CSS и JavaScript, когда создавал студенческий портал Learn JavaScript. Я хотел бы поделиться с вами этой системой, так как она работает хорошо.
Как работает система
Система работает так:
- Разрешить вход пользователя на странице входа
- При входе в систему хранить информацию о пользователе в
localStorage
. - Перенаправление на страницу содержимого
- При входе в систему хранить информацию о пользователе в
- Когда учащийся переходит на страницу
- Проверить, может ли учащийся получить доступ к странице
- Если да, разрешить учащемуся ввести
- Если нет, перенаправить на страницу входа
Студенты могут войти в курс, используя свой адрес электронной почты и пароль.
Когда они отправляют форму, я отправляю их адрес электронной почты и пароль на свой сервер через запрос POST. Вот как выглядит запрос:
асинхронная функция basiclogin (адрес электронной почты, пароль) { константный ответ = ожидание zlFetch.post(loginEndpoint, { авторизация: { имя пользователя: электронная почта, пароль: пароль }, тело: { /*...*/ } }) }
zlFetch
— это библиотека, которую я создал для упрощения использования Fetch API. Вы можете узнать больше о zlFetch
здесь. Параметр auth
преобразует имя пользователя
и пароль
в заголовок базовой аутентификации.
Мой сервер использует веб-маркеры JSON (JWT) для аутентификации пользователей. Он отправляет обратно токен JWT. Токен JWT представляет собой длинную строку, которая выглядит следующим образом:
.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaXJzdE5hbWUiOiJaZWxsIiwiZW1haWwiOiJ6ZWxsd2tAZ21haWwuY29tIiwiaWF0IjoxNTc3ODYzNzc3LCJleHAiOjE1ODA0NTU3Nzd9.i3rOwqV1Bc-JEAaxT7lHZHUlDuFf9ADVP7qjy50WqT0
Этот токен действует как учетные данные для будущих входов в систему. Я сохраняю этот токен в localStorage
, чтобы учащиеся могли автоматически входить в систему.
асинхронная функция basiclogin (адрес электронной почты, пароль) { константный ответ = ожидание zlFetch.post(/*...*/) const {токен} = response.body localStorage.setItem('токен', токен) }
Проверка, вошел ли учащийся в систему
Чтобы проверить, вошел ли ученик в систему, я проверяю localStorage
для токена. Если localStorage
не имеет токена
, я знаю, что учащийся не вошел в систему.
асинхронная функция isLoggedIn () { постоянный токен = store.get('токен') если (! токен) вернуть false }
Если учащийся не вошел в систему, я перенаправляю его на страницу входа.
асинхронная функция autoRedirect () { const validLogin = ожидание isLoggedIn() if (!validLogin && location.pathname !== '/login/') redirect('/login') if (validLogin && location.pathname === '/login/') перенаправить ('/') }
Если у localStorage
есть токен, мне все равно нужно проверить действительность этого токена. Для этого я отправляю на свой сервер еще один POST-запрос.
асинхронная функция isLoggedIn () { // ... // Проверяем правильность токена константный ответ = ожидание zlFetch.post(loginEndpoint, { авторизация: токен, body: {курс: 'learn-javascript'} }) }
Если ответ успешен, мой сервер возвращает другой токен с новой датой истечения срока действия. Этот новый токен позволяет учащимся оставаться в системе в течение более длительного периода времени.
асинхронная функция isLoggedIn () { // ... // Снова сохраняет токен в localStorage const {токен} = response.body localStorage.setItem('токен', токен) вернуть истину }
Обновление уровня доступа учащегося
Помимо токена
, я также храню «уровень доступа» учащегося в localStorage
. Этот «уровень доступа» определяет, к каким урокам может получить доступ студент.
Я сохраняю этот уровень доступа при первом входе учащегося в систему.
функция basiclogin (адрес электронной почты, пароль) { константный ответ = ожидание zlFetch.post(/*...*/) const { токен, пользователь } = response.body // ... // пользователь содержит уровень доступа localStorage.setItem('пользователь', пользователь) }
Я снова сохраняю уровень доступа после проверки токена. Это позволяет мне:
- Запретить учащимся вмешиваться в свои
localStorage
(и получать доступ к урокам, которых у них не должно быть) - Автоматическое обновление доступа учащегося после его перехода на более высокий уровень
Два зайца одним выстрелом!
функция isLoggedIn () { // ... const { токен, пользователь } = response.body localStorage.setItem('пользователь', пользователь) }
Выйти просто. Нам просто нужно очистить элементы, которые мы разместили в localStorage
.
функция выхода из системы () { localStorage.removeItem('токен') localStorage.removeItem('пользователь') }
Предотвращение доступа для учащихся без JavaScript
Этот курс создан с помощью генератора статических сайтов. Каждый урок представляет собой обычный HTML-файл. Учащиеся могут обойти уровень аутентификации и читать HTML напрямую, если они отключили JavaScript.
Этого не должно происходить.
Чтобы люди не отключали свой JavaScript для просмотра уроков, я добавил к элементу HTML класс no-js
.
...
Я удаляю этот класс без js
, когда есть JavaScript.
document.documentElement.classList.remove('нет-js')
И я скрываю основной контент, если пользователь отключил JavaScript.