/Authentication-WebApp

Web application for sign up and log in

Веб-приложение для регистрации и авторизации

Форма регистрации:

Поля:

  • login (unique)
  • password
  • confirm_password
  • email (unique)
  • name

Функционал:

После заполнения формы, уходит запрос на создание пользователя, поля проверяются на валидность (не пустые), уникальные поля проверяются на уникальность в БД, password и confirm_password сравниваются (должны быть одинаковыми). Если что-то не так - выдается ошибка.

В случае ошибки, возвращаем текст с ошибками.

В случае успеха шифруем пароль ("соль"+md5 или "соль"+sha1) и заносим данные в нашу базу.

Форма авторизации:

Поля:

  • login
  • password

Функционал:

После заполнения формы уходит запрос:

  • проверяется наличие пользователя в бд;
  • сверяется пароль.

В случае ошибки, возвращаем текст с ошибками.

В случае успеха происходит процесс авторизации (создание необходимых связей cookies + session + db). Обратите внимание, что в db тоже должна быть связь с сессией и cookies.

В случае авторизации мы должны видеть сообщение 'Hello [имя пользователя]', формы в таком случае не отображаем.

Внешний вид значения не имеет.

Основные требования:

  • Вместо базы данных используем файл XML. Другие БД/технологии не интересны.
  • Пароль не должен хранится в открытом виде.
  • Связь авторизации - cookies + session + db (xml).
  • Формы должны отрправляться используя технологию ajax, ответ в формате json.
  • Если js отключён, то форма отправиться не может.
  • Все поля форм - обязательные.
  • Все формы реализуются через <form>.
  • Результаты залить на github/bitbucket. Сделать репозиторий публичным.
  • Ссылку прислать по почте.

Дополнительные требования

  • защита от инъекций при получении параметров через get- или post;
  • осмысленное название полей в бд;
  • разумное оформление кода – имена переменных, функций, отступы, комментарии;
  • код должен быть - прост в поддержке;
  • отсутствие дублирование кода. копипаст – признак низкой культуры разработки;
  • разделение логики работы и представления – некрасиво писать html и php вперемешку;
  • css/js в отдельных файлах;
  • осмысленное использование css.