Новая версия, основанная на Spring Boot, Spring Security, OAuth2 и других технологиях, реализует управление правами доступа и аутентификацию, поддерживает авторизацию через третьи стороны и получение информации о ресурсах. Подробности можно найти по ссылке ниже. Приглашаем вас использовать и оценить проект. Если вам понравится, оставьте звездочку, спасибо! Проект: https://gitee.com/micai-code/micai-platform-auth
После ввода пользователем имени пользователя и пароля, происходит сравнение с данными, хранящимися в базе данных. Если сравнение проходит успешно, аутентификация считается успешной. Традиционно после успешной аутентификации создается сессия, и клиенту возвращается cookie. Теперь мы используем JWT для обработки аутентификации имени пользователя и пароля. Разница заключается в том, что после успешной аутентификации сервер генерирует токен и возвращает его клиенту. Клиент должен включать этот токен во все последующие запросы в заголовке HTTP. При получении запроса сервер проверяет легальность токена. Проверка включает:Правильный формат JWT Проверка подписи Проверка claims Проверка прав доступа Обработка входа Создание класса JWTLoginFilter, основная функция которого заключается в генерации токена после успешной проверки имени пользователя и пароля и возврате его клиенту: Класс наследуется от UsernamePasswordAuthenticationFilter, переопределяя два метода: attemptAuthentication: принимает и расшифровывает учетные данные пользователя. successfulAuthentication: вызывается после успешного входа пользователя, в этом методе генерируется токен.### Проверка авторизации
После успешного входа пользователь получает токен, который включается во все последующие запросы. Сервер проверяет легальность токена. Создание класса JwtAuthenticationFilter, в котором реализуется функция проверки токена. Класс наследуется от BasicAuthenticationFilter, в методе doFilterInternal из заголовка HTTP Authorization извлекается токен, и с помощью методов из пакета Jwts проверяется его легальность. Если проверка пройдена успешно, это считается легальным запросом с правами доступа.
Через конфигурацию Spring Security объединяются вышеупомянутые методы. Это стандартная конфигурация Spring Security, подробное объяснение которой не требуется. Обратите внимание на следующие строки: .addFilter(new JWTLoginFilter(authenticationManager())) .addFilter(new JwtAuthenticationFilter(authenticationManager())) Эти строки добавляют определенные методы JWT в процесс обработки Spring Security.
Ниже приведены простые проверки нашего приложения:
{
"timestamp": 1567564486909,
"status": 401,
"error": "Unauthorized",
"message": "Полная аутентификация требуется для доступа к этому ресурсу",
"path": "/users/userList"
}
curl http://localhost:8080/users/userList
Причина ошибки заключается в том, что этот URL не имеет соответствующего разрешения, поэтому возвращается код ошибки 401.
#### 2. Регистрация нового пользователя
curl -H "Content-Type: application/json" -X POST -d '{
"username": "admin",
"password": "password"
}' http://localhost:8080/users/signup
curl -i -H "Content-Type: application/json" -X POST -d '{
"username": "admin",
"password": "password"
}' http://localhost:8080/login
Внимание: метод login является частью стандартного URL для входа в систему, предоставленного фреймворком Spring Security.
4.1 Замените XXXXXX на полученный токен. 4.2 Теперь запрос будет успешным.
curl -H "Content-Type: application/json" -H "Authorization: Bearer XXXXXX" http://localhost:8080/users/userList
### Интеграция Swagger-ui для удобства разработки front-end и back-end, по умолчанию доступен по адресу: http://localhost:8080/swagger-ui.html
Внимание: В настоящее время используемый входящий интерфейс для входа по-прежнему использует по умолчанию адрес. Если ваш токен истек, вам потребуется заново войти, чтобы сгенерировать новый токен.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )