Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
kit-oauth — Клиентская библиотека OAuth 2.0 для приложений Kit, поддерживающая потоки кода авторизации, PKCE, учетных данных клиента и обновления токенов со встроенными пресетами провайдеров для GitHub, Google, Microsoft, Discord, Slack и GitLab. | Kitploit
Инструменты/GitLabGitLab/kit-lang/packages/kit-oauth
Аутентификация и авторизацияУтилиты и фреймворкиАутентификацияБезопасность API
GitLabkit-lang/packages/kit-oauth

kit-oauth

Клиентская библиотека OAuth 2.0 для приложений Kit, поддерживающая потоки кода авторизации, PKCE, учетных данных клиента и обновления токенов со встроенными пресетами провайдеров для GitHub, Google, Microsoft, Discord, Slack и GitLab.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
1 месяц назадЕщё не проверено

kit-oauth

Библиотека OAuth 2.0 для приложений на Kit


[TOC]


Файлы

ФайлОписание
.editorconfigКонфигурация форматирования редактора
.gitignoreПравила игнорирования Git для артефактов сборки и зависимостей
.tool-versionsВерсии инструментов asdf (Zig, Kit)
LICENSEФайл лицензии MIT
README.mdЭтот файл
examples/client-credentials.kitТестовый запуск примера с учётными данными клиента
examples/github.kitТестовый запуск примера с кодом авторизации GitHub
kit.tomlМанифест пакета с метаданными, возможностями и задачами
src/oauth.kitРеализация клиента OAuth 2.0
tests/oauth.test.kitФункциональные тесты для OAuth-помощников
tests/types.test.kitТесты поведения типов и констант

Зависимости

Нет зависимостей от пакетов Kit.

Этот пакет использует встроенные модули Kit HTTP и Time. В манифесте пакета запрашивается возможность net, потому что обмен токенами и вспомогательные функции аутентифицированных запросов выполняют HTTP-вызовы.

Установка

root@kitploit:~
kit add gitlab.com/kit-lang/packages/kit-oauth.git

Использование

root@kitploit:~
import Kit.Oauth as OAuth

main = fn =>
  config = OAuth.github "client-id" "client-secret" "http://localhost:3000/callback" ["read:user", "user:email"]

  state = OAuth.generate-state
  auth-url = OAuth.authorize-url config state

  println "Откройте этот URL авторизации:"
  println auth-url

main

Код авторизации

После того как провайдер перенаправит обратно на ваш callback-URL, проверьте, что возвращённый state совпадает с тем, который вы сгенерировали, затем обменяйте код авторизации на токены:

root@kitploit:~
match OAuth.exchange-code http-auth config code
  | Ok tokens ->
    println "Тип токена: ${tokens.token-type}"
    println "Истекает через: ${Int.to-string tokens.expires-in} секунд"
  | Err err ->
    println "Ошибка OAuth: ${err}"

Код авторизации с PKCE

Используйте PKCE для публичных клиентов, таких как десктопные приложения, мобильные приложения и браузерные сценарии:

root@kitploit:~
verifier = "abcdefghijklmnopqrstuvwxyz0123456789-._~abc"
state = OAuth.generate-state
auth-url = OAuth.authorize-url-pkce config state verifier

match OAuth.exchange-code-pkce http-auth config code verifier
  | Ok tokens -> println "Получен токен доступа"
  | Err err -> println "Ошибка OAuth: ${err}"

Текущий помощник PKCE использует метод проверки plain. Он структурирован так, чтобы его можно было перевести на S256, когда станет доступна строковая функция SHA256.

Учётные данные клиента

Используйте учётные данные клиента для аутентификации «машина-машина»:

root@kitploit:~
config = OAuth.custom "client-id" "client-secret" "https://auth.example.com/oauth/authorize" "https://auth.example.com/oauth/token" "https://app.example.com/oauth/callback" ["api:read", "api:write"]

match OAuth.client-credentials http-auth config
  | Ok tokens ->
    println "Получен токен доступа"
  | Err err ->
    println "Ошибка OAuth: ${err}"

Токены обновления

root@kitploit:~
match OAuth.refresh-token http-auth config refresh-token
  | Ok tokens -> println "Токен доступа обновлён"
  | Err err -> println "Ошибка обновления: ${err}"

Аутентифицированные запросы

root@kitploit:~
match OAuth.get http-auth "https://api.example.com/user" tokens.access-token
  | Ok response ->
    println "Статус: ${Int.to-string response.status}"
    println response.body
  | Error err ->
    println "Ошибка API: ${err}"
root@kitploit:~
json-body = "{\"name\":\"Kit\"}"

match OAuth.post http-auth "https://api.example.com/resources" json-body tokens.access-token
  | Ok response -> println "Создано: ${Int.to-string response.status}"
  | Error err -> println "Ошибка API: ${err}"

Предустановки провайдеров

Встроенные помощники провайдеров возвращают OAuthConfig с заполненными конечными точками авторизации и токенов:

Замечания по безопасности

  • Всегда проверяйте значение state колбэка перед обменом кода авторизации.
  • Используйте HTTPS redirect URI в production.
  • Не логируйте токены доступа, токены обновления, коды авторизации или секреты клиента.
  • Храните токены обновления в безопасном хранилище, подходящем для вашего приложения.
  • Используйте переменные окружения или менеджер секретов для секретов клиента.
  • Относитесь к зафиксированным примерам как к примерам для тестового запуска. Они спроектированы так, чтобы быть безопасными с точки зрения контроля чётности и не взаимодействуют с реальными OAuth-провайдерами.

Разработка

Запуск примеров

Запускайте примеры с помощью интерпретатора:

root@kitploit:~
kit run examples/github.kit
kit run examples/client-credentials.kit

Скомпилируйте пример в нативный бинарный файл:

root@kitploit:~
kit build examples/github.kit && ./github

Запуск тестов

Запустите набор тестов:

root@kitploit:~
kit test

Запустите набор тестов с покрытием:

root@kitploit:~
kit test --coverage

Запуск kit dev

Запустите стандартный рабочий процесс разработки:

root@kitploit:~
kit dev

Это выполнит:

  1. Проверку форматирования
  2. Проверку типов исходных файлов в src/
  3. Проверку типов примеров в examples/
  4. Запуск тестов в tests/ с покрытием

Запуск проверки чётности

Запустите проверки чётности интерпретатора/компилятора для примеров:

root@kitploit:~
kit parity --failures-only

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

Генерация документации

Сгенерируйте API-документацию из комментариев к документации:

root@kitploit:~
kit doc

Примечание: Исходники Kit с комментариями документации (##) создадут HTML-документы в docs/*.html.

Очистка артефактов сборки

Удалите сгенерированные файлы, кеши, результаты проверки чётности, документацию, файлы блокировки и нативные артефакты сборки:

root@kitploit:~
kit task clean

Примечание: Определено в kit.toml.

Локальная установка

Чтобы установить этот пакет локально для разработки:

root@kitploit:~
kit install

Это установит пакет в ~/.kit/packages/@kit/oauth/, сделав его доступным для импорта как Kit.Oauth в других проектах.

Лицензия

Этот пакет выпущен под лицензией MIT — подробнее см. LICENSE.

Скачать инструмент
ПомощникПровайдер
OAuth.githubGitHub
OAuth.googleGoogle
OAuth.microsoftMicrosoft Entra ID / Azure AD
OAuth.discordDiscord
OAuth.slackSlack
OAuth.gitlabGitLab
OAuth.customЛюбой OAuth 2.0 провайдер