Существует несколько распространенных интерфейсных решений: HTTP Basic Authentication, session-cookie, аутентификация Token, OAuth (открытая авторизация), JWT и т. д.
1. Базовая HTTP-аутентификация
1. Концепция базовой HTTP-аутентификации
Метод авторизации Базовая аутентификация HTTP — это базовый метод авторизации, реализуемый браузером в соответствии с протоколом http.В процессе обмена данными по протоколу HTTP протокол HTTP определяет метод, позволяющий HTTP-серверу аутентифицировать клиента.
2. Процесс аутентификации HTTP Basic Authenticatio
Шаг 1: клиент запрашивает данные с сервера. Запрошенный контент может быть веб-страницей или асинхронным запросом ajax. В это время предполагается, что клиент не прошел аутентификацию;
Шаг 2: сервер отправляет клиенту код запроса подтверждения 401, после чего открывается интерфейс входа пользователя;
Шаг 3: Пользователь вводит информацию о пользователе и пароль, и браузер автоматически выполняет шифрование в форме Base64;
Шаг 4: После того, как сервер получает запрос, он расшифрует информацию, сравнивает ее с пользовательской информацией в базе данных и возвращает запрошенный контент, который потребности пользователей.
Решение проблемы с входом в систему: во время выхода из системы на сервере создается специальная учетная запись для выхода.Когда полученная информация для аутентификации представляет собой имя пользователя и пароль для выхода, выход из системы проходит успешно, а когда клиент выходит из системы, вручную Аутентификация в заголовке запроса, установите для него учетную запись и пароль для выхода из системы по умолчанию.
2. Сессионные файлы cookie
1. Концепция сеансовых файлов cookie
Сеанс на стороне сервера (сеанс) и файл cookie на стороне браузера используются для обеспечения внешней и внутренней аутентификации.Поскольку HTTP-запрос не имеет состояния, сеанс (сеанс) необходимо создать на стороне сервера, а запросы одного и того же клиента поддерживаются в соответствующих сеансах.В сеансе всякий раз, когда запрос поступает на сервер, сначала проверьте, создал ли клиент сеанс на сервере.Если это так, аутентификация прошла успешно, в противном случае нет аутентификация.
1. Процесс аутентификации сеансовых файлов cookie
Первый шаг: сервер создает сеанс на стороне сервера, когда он принимает первый доступ клиента, затем сохраняет сеанс в памяти, затем генерирует уникальную строку идентификации для сеанса, а затем подставляет уникальную строку идентификации в заголовок ответа.
Шаг 2: когда браузер получает ответ на запрос, он анализирует заголовок ответа, а затем сохраняет идентификатор session_id в локальном файле cookie.Браузер передаст информацию о файле cookie под именем домена в заголовке запроса в следующем HTTP-запросе.
Третий шаг: когда сервер принимает запрос клиента, он анализирует session_id в файле cookie заголовка запроса, а затем находит сеанс клиента, сохраненный сервером, в соответствии с session_id, а затем решает, является ли запрос законным.
3. Верификация токена
1. Процесс аутентификации токена
Первый шаг: клиент запрашивает авторизацию, используя логин и пароль;
Шаг 2: Сервер получает запрос на проверку имени пользователя и пароля;
Третий шаг: после успешной аутентификации сервер выдает токен, после чего токен отправляется клиенту;
Шаг 4: После того, как клиент получит токен, он может сохранить его, например, в файлах cookie или локальном хранилище;
Шаг 5: Клиент должен приносить токен, выданный сервером, каждый раз, когда он запрашивает ресурсы с сервера;
Шаг 6: сервер получает запрос, а затем проверяет токен, переданный в клиентском запросе.Если проверка прошла успешно, он возвращает запрошенные данные клиенту.
Во-вторых, схема проверки токена JWT
1. Концепция JWT
JWT — это схема, предложенная Auth0 для реализации проверки авторизации путем шифрования и подписи JSON.После успешного входа в систему соответствующая информация формируется в объект json, а затем объект каким-то образом шифруется и возвращается клиенту.Клиент запрашивает в следующий раз. Когда токен приносится с собой, сервер проверяет действительность токена при получении запроса. Фактически, он проверяет действительность запроса.
2. Состав JWT
Заголовки: включает в себя категорию (типы), алгоритм шифрования (ALG);
Заявления: включая информацию о пользователе, которую необходимо передать;
Подпись: строка подписи, зашифрованная в соответствии с алгоритмом alg и закрытым ключом, этот раздел является наиболее важной конфиденциальной информацией и может быть расшифрован только на стороне сервера;
4. OAuth (открытая авторизация)
Во-первых, концепция OAuth
OAuth (открытая авторизация) — это открытый стандарт, который позволяет пользователям разрешать сторонним веб-сайтам доступ к информации, которую они хранят у другого поставщика услуг, без необходимости предоставлять имена пользователей и пароли сторонним веб-сайтам или делиться всеми своими данными, чтобы защищать безопасность и конфиденциальность пользовательских данных, сторонние веб-сайты должны явно запрашивать у пользователей авторизацию перед доступом к пользовательским данным. Среди наших общих поставщиков, предоставляющих услуги аутентификации OAuth, Alipay, QQ и WeChat.
Во-вторых, процесс аутентификации OAuth.
Первый шаг: запросите авторизацию у пользователя, и когда мы нажмем на сторонний портал, сторонняя служба авторизации направит нас на стороннюю страницу авторизации входа;
Шаг 2: Когда пользователь щелкает авторизацию и входит в систему, сервер авторизации сгенерирует учетные данные пользователя (код). Учетные данные пользователя будут добавлены к перенаправленному адресу redirect_uri;
Шаг 3: Пользователь использует учетные данные пользователя (код) при выполнении запроса, и сервер проверки возвращает токен доступа (токен доступа);
Шаг 4: Когда вы запрашиваете ресурсы с токеном, вы получаете информацию о защищенных ресурсах.