Публичный REST-пример

Пример авторизации

Ожидает запуска подтверждения

Как использовать пакет

Руководство по интеграции

Этот пример показывает внешний сценарий: ваша система вызывает РосАвт только для подтверждения звонком, а решение о выдаче локальной сессии принимает уже ваш собственный backend.

Шаг 1 Получите у РосАвт токен компании и базовый URL `https://rusauth.ru/auth-client-api/`.
Шаг 2 Настройте свой callback URL и Bearer-токен для приёма вебхук.
Шаг 3 Вызовите `CallToConfirm`, сохраните `TransactionId` и номер РосАвт.
Шаг 4 Дождитесь вебхук или выполните ручную проверку через `CheckConfirmation`.
Шаг 5 После `Success` примените уже свои локальные правила входа или подтверждения.

РосАвт не подменяет вашу SSO-модель. Он даёт только защищённый внешний механизм подтверждения звонком.

Что получает клиент

После интеграции ваше приложение сможет запускать подтверждение звонком, получать результат через вебхук и принимать собственное решение: авторизовать пользователя, подтвердить действие или запросить дополнительную проверку.

Для подключения нужны только токен компании, базовый URL `https://rusauth.ru/auth-client-api/` и ваш callback URL. Если вебхук временно недоступен, вы всегда можете проверить результат вручную через `CheckConfirmation`.

appsettings.json

{
  "RusAuth": {
    "BaseUrl": "https://rusauth.ru/auth-client-api/",
    "Token": "ВАШ_ТОКЕН_КОМПАНИИ",
    "TimeOut": 15
  },
  "Example": {
    "CallbackBearerToken": "ВАШ_ЛОКАЛЬНЫЙ_CALLBACK_BEARER"
  }
}

Program.cs

using RusAuth.Authorization.Contracts.Rest;
using RusAuth.Authorization.Extensions;

builder.Services.AddRusAuthConfirmationClient(new RusAuthOptions
{
    BaseUrl = builder.Configuration["RusAuth:BaseUrl"]!,
    Token = builder.Configuration["RusAuth:Token"]!,
    TimeOut = 15
});

Запуск подтверждения

var response = await rusAuthClient.CallToConfirmAsync(new RusAuthCallToConfirmRequest
{
    PhoneNumber = new RusAuthPhoneNumber
    {
        CountryCode = 7,
        Number = 9991234567
    },
    ExpirationMinute = 10,
    WebHook = "https://client.example.com/api/rusauth/callback/confirmation",
    WebHookBearerToken = "client-callback-bearer-token"
}, cancellationToken);

Ручная проверка статуса

var status = await rusAuthClient.CheckConfirmationAsync(new RusAuthCheckConfirmationRequest
{
    PhoneNumber = new RusAuthPhoneNumber
    {
        CountryCode = 7,
        Number = 9991234567
    },
    TransactionId = response.TransactionId
}, cancellationToken);

Вебхук-контракт

POST /api/rusauth/callback/confirmation
Authorization: Bearer <ваш локальный callback bearer>

{
  "transactionId": "f3d2d9d0d8cf4d8e8fbb0e1090f7d245",
  "clientPhoneNumber": {
    "countryCode": 7,
    "number": 9991234567
  }
}

Что должен сделать клиент

1. Сохранить TransactionId и номер клиента в своей системе.
2. Дождаться вебхук или выполнить ручную проверку через CheckConfirmation.
3. После статуса Success применить свои правила входа, подтверждения операции или подтверждения действия.
4. Не считать РосАвт своей SSO-системой: РосАвт даёт только механизм подтверждения звонком.
Произошла необработанная ошибка. Перезагрузить x

Повторное подключение к серверу...

Подключение не удалось... повтор через сек.

Не удалось переподключиться.
Повторите попытку или перезагрузите страницу.

Сессия была приостановлена сервером.

Не удалось возобновить сессию.
Повторите попытку или перезагрузите страницу.