Использование управляющего API Logto: пошаговое руководство
Узнайте, как использовать управляющее API Logto для вашего приложения в различных сценариях.
Хотя Logto предоставляет веб-консоль для управления идентификациями, использование управляющего API является мощной альтернативой, если вы хотите автоматизировать свой рабочий процесс или получить программный доступ к Logto. Это руководство проведет вас через шаги по использованию управляющего API Logto в различных сценариях.
Обзор
Вы можете заметить, что в Logto Console есть встроенный ресурс API "Управляющее API Logto". Он будет ключевой фигурой в этом руководстве.
По сравнению с другими ресурсами API, в настоящее время управляющее API Logto не позволяет прямой доступ со стороны конечных пользователей, так как он предназначен для связи между машинами, и оно настолько мощно, что может использоваться для управления вашей учетной записью и ресурсами Logto.
Вот несколько типичных сценариев, в которых вы можете захотеть использовать управляющее API Logto:
CI/CD
Коммуникация между сервисами
Одностраничное приложение
Веб-сервер, который рендерит HTML
Архитектура
Независимо от сценариев, есть два шаблона, которые вы можете использовать для доступа к управляющему API Logto.
Шаблон 1: Прямой доступ
В этом шаблоне ваш клиент или сервис будет напрямую получать доступ к управляющему API Logto. В Logto клиент или сервис называется "приложением для связи между машинами".
Пример использования сервиса на бекенде:
Шаблон 2: Косвенный доступ
В этом шаблоне ваш клиент или сервис будет получать доступ к управляющему API Logto через сервис на бекенде. Шаблон 2 построен на основе шаблона 1, в котором участвует другое приложение. Новым приложением может быть традиционное веб-приложение, нативное приложение или одностраничное приложение, которое будет получать доступ к сервису на бекенде.
Пример использования одностраничного приложения:
Этот шаблон полезен, когда вы хотите иметь пользовательскую логику, чтобы контролировать доступ к управляющему API Logto. Например, вы можете захотеть вернуть все заказы для потребителя и прикрепить информацию о продавце к каждому заказу. В этом случае вы можете использовать одностраничное приложение для запроса сервиса на бекенде, чтобы получить заказы, и в сервисе на бекенде вы можете использовать управляющее API Logto, чтобы получить информацию о продавце.
Доступ к управляющему API Logto
Создайте приложение для связи между машинами
Сначала вам нужно создать приложение для связи между машинами в Logto Console. Перейдите на вкладку "Приложения" и нажмите кнопку "Создать приложение". Затем нажмите "Начать создание" в карточке "Связь между машинами".
Настройте роль для связи между машинами
Чтобы получить доступ к управляющему API Logto, вам нужно создать роль для связи между машинами с соответствующими разрешениями. В Logto Console перейдите на вкладку "Роли" и нажмите кнопку "Создать роль". Нажмите "Показать больше опций" и выберите "Роль приложения связи между машинами" в разделе "Тип роли".
Теперь вы можете увидеть, что "Управляющее API Logto" появляется в разделе "Назначить разрешения". Отметьте ресурс API для всех разрешений и нажмите кнопку "Создать роль".
Как только роль создана, вы можете назначить её приложению для связи между машинами, которое вы создали на предыдущем шаге.
Получите токен доступа
Вы можете следовать шагам в этой статье, чтобы получить токен доступа через предоставление учетных данных клиента для вашего приложения связи между машинами. Протестируйте токен доступа, отправив запрос к конечной точке в управляющем API Logto.
Теперь вы готовы к шаблону 1. Обратите внимание, что токен доступа действителен в течение короткого периода времени, поэтому, если вы хотите его кэшировать, вам, возможно, потребуется его периодически обновлять.
Добавьте дополнительный слой
Хотя доступ к управляющему API Logto не разрешен для конечных пользователей, вы можете добавить дополнительный слой, чтобы испо льзовать мощь управляющего API Logto и позволить ему расширить возможности вашего сервиса.
Например, вы создаете онлайн-сообщество с одностраничным приложением и сервисом на бекенде. Вы можете захотеть иметь функцию, которая позволяет вошедшим в систему пользователям видеть 10 лучших пользователей, у которых больше всего подписчиков. Будет создана конечная точка GET /api/top-users
:
Чтобы убедиться, что конечная точка доступна только для вошедших в систему пользователей, вы можете создать "одностраничное приложение" в Logto Console и интегрировать Logto SDK в это приложение. Затем вы можете использовать SDK, чтобы получить токен доступа и отправить запрос к конечной точке:
В сервисе на бекенде вы можете сначала запросить 10 лучших пользователей из базы данных, а затем использовать управляющее API Logto, чтобы получить информацию о пользователях:
Наконец, вы можете вернуть ответ одностраничному приложению:
Полная диаграмма последовательности:
В этом потоке участвуют два типа токенов доступа: один для сервиса на бекенде для доступа к управляющему API Logto, и другой для одностраничного приложения для доступа к сервису на бекенде.
Первый токен доступа - это тот, который вы получили в предыдущем разделе. Второй токен доступа - это токен, который вы можете получить из Logto SDK.
Мой токен доступа в одностраничном приложении не является JSON Web Token (JWT)
Если вы не указываете ресурс при вызове метода getAccessToken
в Logto SDK, токен доступа будет непрозрачной строкой, которая предназначена для использования с конечной точкой userinfo. Чтобы получить JWT:
- Определите ресурс API в Logto Console, например,
https://api.example.com
. - Добавьте ресурс API в конфигурацию
resources
Logto SDK, например,resources: ['https://api.example.com']
. - Вызовите метод
getAccessToken
с ресурсом API, например,getAccessToken('https://api.example.com')
.
Чтобы проверить JWT в вашем сервисе на бекенде, пожалуйста, обратитесь к Проверка токена авторизации API-запроса.
Что означает JWT в одностраничном приложении?
JWT лишь означает, что пользователь вошел в систему и пытается получить доступ к ресурсу API. Это не означает, что у пользователя есть конкретные разрешения на ресурс API. Решение о предоставлении пользователю доступа к ресурсу API за вами.
Если вам нужен более детальный контроль доступа, вы также можете применить управление доступом на основе ролей (RBAC) к пользователю. Дополнительную информацию смотрите в разделах 🔐 Управление доступом на основе ролей (RBAC).
Заключительные примечания
Управляющее API Logto мощное и гибкое для множества сценариев. С помощью стандартных протоколов вы можете легко интегрировать управляющее API Logto в ваше приложение и построить безопасную и масштабируемую систему. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться к нам.