Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kit-oauth — Kit 애플리케이션을 위한 OAuth 2.0 클라이언트 라이브러리로, 인증 코드, PKCE, 클라이언트 자격 증명 및 리프레시 토큰 흐름을 지원하며 GitHub, Google, Microsoft, Discord, Slack 및 GitLab에 대한 기본 제공 공급자 사전 설정이 포함되어 있습니다. | Kitploit
도구/GitLabGitLab/kit-lang/packages/kit-oauth
Authentication & AuthorizationUtilities & FrameworksAuthenticationAPI Security
GitLabkit-lang/packages/kit-oauth

kit-oauth

Kit 애플리케이션을 위한 OAuth 2.0 클라이언트 라이브러리로, 인증 코드, PKCE, 클라이언트 자격 증명 및 리프레시 토큰 흐름을 지원하며 GitHub, Google, Microsoft, Discord, Slack 및 GitLab에 대한 기본 제공 공급자 사전 설정이 포함되어 있습니다.

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
1개월 전아직 검토되지 않음

kit-oauth

Kit 애플리케이션용 OAuth 2.0 클라이언트 라이브러리


[TOC]


파일

파일설명
.editorconfig편집기 포맷 설정
.gitignore빌드 산출물 및 의존성에 대한 Git 무시 규칙
.tool-versionsasdf 툴 버전 (Zig, Kit)
LICENSEMIT 라이선스 파일
README.md이 파일
examples/client-credentials.kit드라이런 클라이언트 자격 증명 예제
examples/github.kit드라이런 GitHub 인가 코드 예제
kit.toml메타데이터, 기능 및 작업이 포함된 패키지 매니페스트
src/oauth.kitOAuth 2.0 클라이언트 구현
tests/oauth.test.kitOAuth 헬퍼의 기능 테스트
tests/types.test.kit타입 및 상수 동작 테스트

의존성

Kit 패키지 의존성 없음.

이 패키지는 Kit의 내장 HTTP 및 Time 모듈을 사용합니다. 패키지 매니페스트는 토큰 교환 및 인증된 요청 헬퍼가 HTTP 호출을 수행하기 때문에 net 기능을 요청합니다.

설치

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 "Open this authorization URL:"
  println auth-url

main

인가 코드

공급자가 콜백 URL로 리디렉션한 후, 반환된 state가 생성한 상태와 일치하는지 확인한 다음 인가 코드를 토큰으로 교환합니다:

root@kitploit:~
match OAuth.exchange-code http-auth config code
  | Ok tokens ->
    println "Token type: ${tokens.token-type}"
    println "Expires in: ${Int.to-string tokens.expires-in} seconds"
  | Err err ->
    println "OAuth error: ${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 "Access token received"
  | Err err -> println "OAuth error: ${err}"

현재 PKCE 헬퍼는 plain 챌린지 메서드를 사용합니다. 문자열 SHA256 헬퍼가 제공되면 S256으로 전환할 수 있도록 구조화되어 있습니다.

클라이언트 자격 증명

머신 간 인증에는 클라이언트 자격 증명을 사용하세요:

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 "Access token received"
  | Err err ->
    println "OAuth error: ${err}"

리프레시 토큰

root@kitploit:~
match OAuth.refresh-token http-auth config refresh-token
  | Ok tokens -> println "Refreshed access token"
  | Err err -> println "Refresh failed: ${err}"

인증된 요청

root@kitploit:~
match OAuth.get http-auth "https://api.example.com/user" tokens.access-token
  | Ok response ->
    println "Status: ${Int.to-string response.status}"
    println response.body
  | Error err ->
    println "API error: ${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 "Created: ${Int.to-string response.status}"
  | Error err -> println "API error: ${err}"

공급자 프리셋

내장된 공급자 헬퍼는 공급자 인가 및 토큰 엔드포인트가 채워진 OAuthConfig를 반환합니다:

보안 참고 사항

  • 인가 코드를 교환하기 전에 항상 콜백 state 값을 검증하세요.
  • 프로덕션에서는 HTTPS 리디렉션 URI를 사용하세요.
  • 액세스 토큰, 리프레시 토큰, 인가 코드 또는 클라이언트 시크릿을 로그에 기록하지 마세요.
  • 리프레시 토큰은 애플리케이션에 적합한 안전한 저장소에 보관하세요.
  • 클라이언트 시크릿에는 환경 변수 또는 시크릿 관리자를 사용하세요.
  • 커밋된 예제는 드라이런 예제로 취급하세요. 이 예제는 패리티에 안전하도록 설계되었으며 실제 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 소스는 docs/*.html에 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 공급자