Перейти к содержанию

Аутентификация

Аутентификация

Система аутентификации платформы ЦК основана на цифровых подписях 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 запроса/мутации/подписки.