Я создал пример приложения, используя Sprint Boot, Spring security и JWT, и определил свои собственные фильтры аутентификации и авторизации. При выполнении базовой аутентификации (передача имени пользователя и пароля) я получаю токен JWT в формате xxxx.yyyy.zzzz, где xxxx - заголовок, yyyy - полезная нагрузка, а zzzz - подпись, и каждая часть кодируется с использованием кодера Base64URL. Что я не понимаю, так это то, как JWT отличается от OAuth 2.0. В OAuth 2.0 мы можем передавать 2 типа grant_types как «имя пользователя» или «учетные данные клиента», а также для передачи идентификатора клиента и секретного идентификатора, чтобы получить токены доступа и обновления.
Пожалуйста, помогите прояснить мои следующие сомнения: -
1) Является ли JWT легче OAuth 2.0, поскольку он не содержит токен обновления, а только токен доступа?
2) JWT нельзя использовать для создания автономного сервера авторизации, как мы можем сделать автономный сервер авторизации, используя аннотацию @EnableAuthorizationServer, когда речь идет об OAuth 2.0. Правильно ли мое предположение?
3) JWT не принимает идентификатор клиента / секретный клиент, а просто используется в качестве базовой аутентификации для получения токенов на предъявителя?
4) Различен ли формат маркера доступа (или канала-носителя) для OAuth2.0 и JWT?
Я видел пример, где использовались OAuth 2.0 и JWT. OAuth 2.0 должен был создать сервер авторизации, который возвращает маркер JWT только в конце, но не понимал, почему JWT использовался, если OAuth2.0 может возвращать токен сам по себе.
Спасибо