Способы авторизации
При разработке приложения со встроенным Jazz SDK (Android, iOS или Web), вам нужно поддержать авторизацию запросов в SaluteJazz API.
Описание общей схемы обмена сообщениями с API — в разделе Обмен сообщениями.
Для авторизации запросов используется токен доступа к API, который можно получить в обмен на транспортный токен с помощью запроса POST /auth/login
.
Токен доступа можно получить двумя способами, которые отличаются методами генерации транспортного токена:
В первом случае транспортный токен генерируется на бэкенде приложения, а токен доступа получается либо на фронтенде, либо на бэкенде.
Во втором случае создание транспортного токена и его обмен на токен доступа выполняются на фронтенде приложения.
В этом случае существует риск компрометации ключа SDK, который необходим для создания транспортного токена.
Старайтесь избегать такого подхода.
Авторизация с помощью бэкенда приложения
Использование бэкенда приложения для генерации транспортного токена с последующим обменом на токен доступа можно представить на схеме:
Описание этапов авторизации:
Пользователь обращается к фронтенду приложения.
Фронтенд передает запрос в бэкенд.
Бэкенд, согласно собственной логике, идентифицирует пользователя.
Бэкенд получает ключ SDK.
Как правило, ключ SDK хранится в легко доступном хранилище на случай необходимости перевыпустить и обновить его. Таким хранилищем может быть база данных или конфигурационный сервер.
Бэкенд генерирует транспортный токен.
Для генерации токена бэкенд использует идентификатор пользователя и ключ SDK.
Подробнее — в разделе Авторизация запросов к API.
После генерации транспортного токена он может быть использован одним из двух способов.
- Основной способ
- Альтернативный способ
- Бэкенд самостоятельно обменивает транспортный токен на токен доступа с помощью запроса
POST /auth/login
. - API возвращает токен доступа в бэкенд.
- Бэкенд передает токен доступа на фронтенд.
- Фронтенд использует токен доступа для авторизации запросов к API.
- API авторизует запрос с фронтенда и возвращает данные.
Это рекомендованный способ, так как он наиболее безопасен.
- Бэкенд передает транспортный токен на фронтенд.
- Фронтенд обменивает транспортный токен на токен доступа с помощью запроса
POST /auth/login
. - API возвращает токен доступа на фронтенд.
- Фронтенд использует токен доступа для авторизации запросов к API.
- API авторизует запрос с фронтенда и возвращает данные.
После получения запрошенных данных фронтенд изменяет состояние и отображает изменения пользователю.
Авторизация с помощью фронтенда приложения
В этом случае существует риск компрометации ключа SDK, который необходим для создания транспортного токена.
Старайтесь избегать такого подхода.
Использование фронтенда приложения для генерации транспортного токена с последующим обменом на токен доступа можно представить на схеме:
Описание этапов авторизации:
- Пользователь обращается к фронтенду приложения.
- Фронтенд получает ключ SDK.
- Фронтенд создает транспортный токен.
- Фронтенд обменивает транспортный токен на токен доступа с помощью запроса
POST /auth/login
. - API возвращает токен доступа на фронтенд.
- Фронтенд использует токен доступа для авторизации запросов к API.
- API авторизует запрос с фронтенда и возвращает данные.
- Фронтенд изменяет состояние и отображает изменения пользователю.