Lingara Lingara 문서 학습 가이드 API 라이브러리 앱 만들기 웹 앱
언어: 한국어

인증

이 페이지는 영어에서 번역되었습니다. 두 내용이 다를 경우 영어 페이지가 정확합니다. 영어 페이지 읽기

OAuth 클라이언트의 클라이언트 ID와 클라이언트 시크릿으로 클라이언트를 만듭니다. 나머지는 라이브러리가 처리합니다. 액세스 토큰을 요구하는 일은 없습니다.

라이브러리가 대신 해 주는 일

  • 교환은 한 번, 그리고 공유. 토큰이 필요한 첫 호출이 자격 증명을 토큰으로 교환합니다. 여러 호출이 동시에 시작되더라도 각자 교환을 시작하지 않고, 모두 그 한 번의 교환을 기다립니다.
  • 만료 직전까지 캐시. 토큰은 만료 60초 전까지 재사용되고, 그 이후의 다음 호출에서 교체됩니다. 백그라운드에서 갱신하지 않으므로 유휴 상태의 프로세스는 요청을 보내지 않습니다.
  • 401에는 한 번만 재시도. API가 토큰을 거부하면 라이브러리는 그 토큰을 버리고 새 토큰을 받아 호출을 한 번 반복합니다. 두 번째 401은 API 오류로 발생합니다.
  • 제한 시간이 있는 교환. 응답을 받지 못한 토큰 요청은 30초 후에 실패하므로, 느린 토큰 엔드포인트가 모든 호출자를 붙잡아 둘 수 없습니다.
  • 유출될 것이 없음. 클라이언트 시크릿과 모든 액세스 토큰은 로그, 디버그 출력, 오류 메시지에서 [REDACTED]로 표시됩니다.

API 버전 목록 조회처럼 토큰이 필요 없는 작업은 토큰을 보내지 않으므로, 자격 증명 없이 만든 클라이언트로도 호출할 수 있습니다.

시크릿은 서버에 보관하세요

클라이언트 시크릿은 사용자가 아니라 애플리케이션을 식별합니다. 서버의 설정이나 시크릿 저장소에 보관하고, 브라우저나 모바일 앱에는 절대 포함하지 마세요.

코드 예제 언어

TypeScript

import { Lingara } from "@lingara/api";

const client = new Lingara({
  clientId: process.env.LINGARA_CLIENT_ID!,
  clientSecret: process.env.LINGARA_CLIENT_SECRET!,
});

Rust

use lingara::Client;

let client = Client::builder()
    .client_credentials(std::env::var("LINGARA_CLIENT_ID")?, std::env::var("LINGARA_CLIENT_SECRET")?)
    .build()?;

Go

import (
	"os"

	lingara "github.com/Spinning-Cat-Studios/lingara_api_clients/go"
)

client, err := lingara.New(
	lingara.WithClientCredentials(os.Getenv("LINGARA_CLIENT_ID"), os.Getenv("LINGARA_CLIENT_SECRET")),
)
if err != nil {
	return nil, err
}

Java

import com.getlingara.client.LingaraClient;

LingaraClient client =
    LingaraClient.builder()
        .clientCredentials(
            System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
        .build();

Kotlin

import com.getlingara.kotlin.LingaraClient

val client =
    LingaraClient {
        clientCredentials(System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
    }

Ruby

require "lingara"

client = Lingara::Client.new(client_id: client_id, client_secret: client_secret)

PHP

use Lingara\Client;

$client = new Client(clientId: $clientId, clientSecret: $clientSecret);

이 페이지가 감싸는 것