Я полностью запутался в использовании OAuth и не уверен, как использовать oauth для моего сценария. На данный момент я использую «чистый» подход JWT, который выглядит так:
- Клиент (Приложение JavaScript) отправляет логин и пароль на мою Rest-Endpoint (Сервер (Java)).
- Сервер проверяет информацию пользователя, считывает / генерирует некоторые роли пользователя и оборачивает ее в токен JWT (с секретом)
- Сервер отправляет токен JWT обратно клиенту
- Клиент выполнит дополнительные Rest-Calls с заголовком Authorizationen
- Сервер проверяет токен с личным секретом и общим доступом на основе ролей / пользователя
Теперь я думаю об использовании OAuth, но я запутался, как использовать его для реализации сценария.
- Я зарегистрировал приложение на «auth0».
- Я использую библиотеку JS для перенаправления в процесс входа в систему auth0, входа через учетную запись auth0 и использования id_token и access_token
= я могу отправить id_token (JWT с RSA256) моему API для отдыха, проверить его с помощью публичного сертификата и извлечь некоторую информацию о пользователе
но:
а) Я прочитал, что не должен использовать id_token для доступа к моему API. Вместо этого я должен использовать access_token (который не в формате JWT и не даст мне никакой информации о пользователе) и использовать access_token для запроса информации о пользователе? Как быть с каждым запросом?!
б) Я не вижу смысла, когда в игру вступают роли пользователя. Когда у меня есть некоторые операции (остальные конечные точки), которые разрешены только для «администраторов» или «клиентов». Я не вижу возможности определить их.
Видите ли, я немного запутался, я надеюсь, что кто-нибудь сможет все прояснить.
большое спасибо
Chris