Аутентификация¶
Система аутентификации платформы MONO основана на цифровых подписях EOSIO. Каждый пользователь владеет парой криптографических ключей — приватным и публичным. Приватный ключ используется для создания цифровой подписи, а публичный ключ позволяет проверить подлинность этой подписи. Аутентификация происходит путем подписания случайного вызова сервера приватным ключом пользователя.
В системе MONO используется двухтокенная схема аутентификации: - Access Token — для доступа к API с коротким временем жизни - Refresh Token — для обновления access token с длительным временем жизни
Это обеспечивает баланс между безопасностью и удобством использования.
Вход в систему¶
🛠️ SDK: Mutations.Auth.Login | 🔗 GraphQL API: Mutation.login
⚠️ Mutations.Auth.Login не найден
Результат:
⚠️ Mutations.Auth.Login не найден
Процесс входа в систему: 1. Клиент отправляет имя пользователя 2. Сервер возвращает случайный challenge 3. Клиент подписывает challenge приватным ключом 4. Сервер проверяет подпись и выдает токены
Обновление токена¶
🛠️ SDK: Mutations.Auth.Refresh | 🔗 GraphQL API: Mutation.refresh
⚠️ Mutations.Auth.Refresh не найден
Результат:
⚠️ Mutations.Auth.Refresh не найден
Refresh token имеет более длительное время жизни и используется для получения новых access token без повторной аутентификации.
Выход из системы¶
🛠️ SDK: Mutations.Auth.Logout | 🔗 GraphQL API: Mutation.logout
⚠️ Mutations.Auth.Logout не найден
Результат:
⚠️ Mutations.Auth.Logout не найден
При выходе из системы refresh token добавляется в черный список, что делает невозможным его дальнейшее использование.
Роли и права доступа¶
Система поддерживает следующие роли: - chairman — председатель совета (полные права) - member — член совета (ограниченные права) - user — обычный пользователь (минимальные права)
Права доступа проверяются для каждого GraphQL запроса с помощью декораторов @AuthRoles.
Безопасность¶
- Все токены имеют ограниченное время жизни
- Используется криптография уровня блокчейна EOSIO
- Поддерживается черный список refresh token
- Процесс восстановления ключей защищен email-верификацией (см. раздел "Аккаунты")