Я понимаю, что это несколько лет назад, но я подумал, что мог бы расширить ответ Конора и добавить немного больше к обсуждению.
Может кто-нибудь дать мне пошаговое описание того, как работает аутентификация на основе файлов cookie? Я никогда ничего не делал, включая аутентификацию или куки. Что нужно сделать браузеру? Что нужно сделать серверу? В каком порядке? Как мы обеспечиваем безопасность?
Шаг 1: Клиент> Регистрация
Прежде всего, пользователь должен зарегистрироваться. Клиент отправляет HTTP-запрос на сервер, содержащий его / ее имя пользователя и пароль.
Шаг 2: Сервер> Обработка регистрации
Сервер получает этот запрос и хэширует пароль перед сохранением имени пользователя и пароля в вашей базе данных. Таким образом, если кто-то получит доступ к вашей базе данных, он не увидит реальные пароли ваших пользователей.
Шаг 3: Клиент> Логин пользователя
Теперь ваш пользователь входит в систему. Он / она предоставляет свое имя пользователя / пароль и снова, это публикуется как HTTP-запрос к серверу.
Шаг 4: Сервер> Подтверждение входа
Сервер ищет имя пользователя в базе данных, хэширует предоставленный пароль для входа и сравнивает его с ранее хешированным паролем в базе данных. Если это не произойдет, мы можем запретить им доступ, отправив код состояния 401 и завершив запрос .
Шаг 5: Сервер> Генерация токена доступа
Если все получится, мы создадим токен доступа, который однозначно идентифицирует сеанс пользователя. Находясь на сервере, мы делаем две вещи с помощью токена доступа:
- Сохраните его в базе данных, связанной с этим пользователем
- Прикрепите его к файлу ответа, который будет возвращен клиенту. Обязательно установите дату / время истечения срока, чтобы ограничить сеанс пользователя
Отныне файлы cookie будут прикрепляться к каждому запросу (и ответу) между клиентом и сервером.
Шаг 6: Клиент> Создание запросов к страницам
Вернувшись на клиентскую сторону, мы теперь вошли в систему. Каждый раз, когда клиент делает запрос на страницу, требующую авторизации (т.е. они должны войти в систему), сервер получает токен доступа из cookie и проверяет его на соответствие одному из них. в базе данных, связанной с этим пользователем. Если это проверено, доступ предоставлен.
Это должно начать вас. Обязательно очистите куки при выходе!