← Ко всем записям

SDK

Адаптивные SDK: одно ядро на TypeScript, тонкие адаптеры под любой стек

11 мин

Как AuthKit TS становится переносимым ядром браузерных auth-флоу — и как адаптеры под провайдеров и под языки сохраняют это ядро полезным от React до Go и PHP.

Большинство auth-SDK пишутся по разу под язык и копируют одну и ту же оркестрацию по кругу. Мы инвертируем это: одно TypeScript-ядро для браузера, тонкие адаптеры под провайдера и под язык — для всего остального.

Браузерная сторона

  • Ядро authkit-ts — конечный автомат флоу: start, challenge, verify, complete, error.
  • Адаптеры провайдеров — привязывают ядро к credential-бэкенду (первым — Hanko). Адаптер знает бэкенд; ядро — нет.
  • Дистрибуция — UMD-бандл, опубликованный как ui8kit.js рядом с AuthKit; npm-пакет в npmjs.com/org/authfly.

Бэкенд-сторона

  • Go — first-class, поскольку IdP на Go. Переиспользует контракты из core.
  • TypeScript / Node — серверные хелперы для OIDC-клиентов и валидации сессий.
  • Python, PHP, .NET — тонкие SDK поверх той же Management API и OIDC-эндпоинтов.

Паттерн адаптера

Каждый адаптер реализует три функции: превратить пользовательский ввод в credential challenge, проверить ответ и отдать вызывающему нормализованную identity. Цикл оркестрации остаётся в ядре, поэтому поведение одинаково на всех стэках.

Почему это лучше переписывания под каждый язык

  • Багфикс — в одном месте.
  • Паритет поведения проверяется проигрыванием одного и того же флоу против каждого адаптера.
  • Новые провайдеры приходят как адаптеры, а не как форки.

Логотип Auth Fly

Auth Fly

Открытый конструктор аутентификации

Об Auth Fly