Авторизація

У базі даних зберігаються хеші паролів користувачів, а не самі паролі. Користувач може запросити на свій e-mail одноразове посилання для входу до свого кабінету на сайті, де може вказати собі новий пароль для входу.

Кнопка відкриття спливаючої форми авторизації відображається на сторінці адмінки — до авторизації.

Також у шапці публічних сторінок (header) може бути аяксом (скрипт наприкінці BODY) заповнюватися блок з id "headerDiv" - якщо на сайті потрібна авторизація користувачів та/або є інформація, яка може змінюватися після першого відкриття сторінки, наприклад: наявність товару у кошику, наявність обраних сторінок, наявність порівнюваних товарів…

У блоці "headerDiv" крім блоку авторизації (class="login") можуть розміщуватися блоки кошика покупок, вибраних товарів, порівняння товарів…
Завантаження "headerDiv" аяксом дозволяє при кешуванні сторінки браузером правильно відображати поточний стан блоків авторизації, корзини покупок, обраного та порівняння.

До авторизації блок авторизації - кнопка, що відображає аяксом спливаючу форму "Вхід" (Текст в анонсі внутрішньої сторінки "Вхід").
Спочатку в цій формі відображається поле введення логіну (e-mail) та посилання "Реєстрація".

Після введення символу "@" логіна відображається поле введення пароля — щоб було зрозуміло: куди натиснути після введення логіна.

Зліва на полі пароля кнопка "очей": перекреслений — якщо тип поля "пароль", не перекреслений — якщо тип поля "текст".
Натискання кнопки перемикає тип поля введення пароля.

При натисканні на поле введення пароля перевіряється наявність логіну в базі даних: у разі відсутності — поле введення пароля приховується, відображається повідомлення.
Якщо текст у полі логіна змінюється, поле введення пароля знову відображається.

Якщо логін існує, то після натискання на поле пароля нижче відображається кнопка "Увійти" і праворуч у полі пароля - кнопка "Забули пароль?".
Якщо змінити текст логіна - кнопка "Забули пароль?" ховається, відображається при натисканні поля пароля лише за умови існування зміненого логіну.

Натискання символу "Забули пароль?" аяксом відображає форму "Забули пароль?" (текст в анонсі сторінки "Запит нового пароля" id=-11), де відображаються:

  1. e-mail, куди запросити одноразове посилання доступу
  2. блок капчі: картинка з текстом капчі (натискання оновлює текст, зараз текст — число) та поле введення для повторення тексту капчі
  3. кнопка "Запросити".

На цей запит (POST loginNewPsw.php) на вказаний e-mail (існування перевірено) надсилається повідомлення з одноразовим посиланням на форму нового пароля у кабінеті користувача на сайті.
У цій формі користувач зможе вказати новий пароль - при вході за посиланням у сесії PHP відзначається особливий статус і у формі зміни пароля не потрібно введення поточний пароль. При вході на посилання також видаляється тимчасовий пароль. для неможливості повторного використання посилання.
Користувач може пароль не змінювати – наприклад – згадав свій пароль. При успішній авторизації тимчасовий пароль видаляється.

При спробі входу з неправильним паролем — відображається блок капчі, повідомлення про помилку та посилання "Забули пароль?".
Після цієї вимоги введення капчі буде і за будь-яких спроб авторизації з цим логіном з будь-якого браузера - для утруднення підбору пароля. Навіть після вказівки нового пароля. Після успішної авторизації вимога капчі видаляється із запису користувача.