Я усвідомлюю, що це запізнилося на роки, але я подумав, що зможу розширити відповідь Конора і додати ще трохи до дискусії.
Чи може хтось надати мені покроковий опис того, як працює автентифікація на основі файлів cookie? Я ніколи не робив нічого, що стосується ні автентифікації, ні файлів cookie. Що потрібно зробити для браузера? Що потрібно зробити для сервера? У якому порядку? Як ми бережемо речі в безпеці?
Крок 1: Клієнт> Реєстрація
Перш за все, користувач повинен зареєструватися. Клієнт розміщує на сервері запит HTTP, що містить його ім’я та ім’я користувача.
Крок 2: Сервер> Обробка реєстрації
Сервер отримує цей запит і хешує пароль перед збереженням імені користувача та пароля у вашій базі даних. Таким чином, якщо хтось отримає доступ до вашої бази даних, він не побачить фактичні паролі користувачів.
Крок 3: Клієнт> Вхід користувача
Тепер ваш користувач входить у систему. Він / вона надає їх ім’я користувача / пароль, і знову це розміщується як сервер HTTP-запиту.
Крок 4: Сервер> Підтвердження входу
Сервер шукає ім'я користувача в базі даних, хеширує доданий пароль для входу та порівнює його з раніше хешированним паролем у базі даних. Якщо він не перевіриться, ми можемо заборонити їм доступ надіславши код статусу 401 та закінчивши запит .
Крок 5: Сервер> Генерування маркера доступу
Якщо все перевіриться, ми створимо маркер доступу, який однозначно визначає сеанс користувача. Ще на сервері ми робимо дві речі з маркером доступу:
- Зберігайте його в базі даних, пов’язаній з цим користувачем
- Приєднайте його до файлу cookie-відповіді, який потрібно повернути клієнту. Обов’язково встановіть дату / час закінчення терміну дії, щоб обмежити сеанс користувача
Відтепер файли cookie будуть додані до кожного запиту (та відповіді), зробленого між клієнтом та сервером.
Крок 6: Клієнт> Створення запитів на сторінку
Повернувшись на сторону клієнта, ми зараз увійшли в систему. Кожен раз, коли клієнт робить запит на сторінку, яка вимагає авторизації (тобто їх потрібно ввійти), сервер отримує маркер доступу з файлу cookie та перевіряє його на той, в базі даних, пов’язаній з цим користувачем. Якщо він перевіряється, доступ надається.
Це має розпочати роботу. Обов’язково очистіть файли cookie після виходу!