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