Lingara Lingara 說明文件 學習指南 API 函式庫 應用程式 起造 網頁版
語言: 閩南語

身分驗證

這頁是對英文翻譯過來的。若兩篇無仝,以英文頁為準。 看英文頁

你用一个 OAuth 用戶端的用戶端 ID 佮用戶端密鑰來建立用戶端,賰的就交予函式庫處理。伊從來袂共你討存取權杖。

函式庫替你做的代誌

  • 一擺交換,逐家共用。 頭一个需要權杖的呼叫會用你的憑證換一个權杖轉來。若有幾若个呼叫仝時開始,in 攏會做伙等彼一擺交換,毋是逐个家己閣去換。
  • 欲到期才會換。 權杖會一直重複使用,到伊到期進前 60 秒,了後佇下一擺呼叫的時陣換一个新的。背景內底袂自動更新啥物,所以一个閒閒的程序袂發出任何請求。
  • 拄著 401 會重試一擺。 若 API 無收某一个權杖,函式庫會共伊放掉,提一个新權杖,閣共這擺呼叫重做一擺。第二擺 401 就會當做 API 錯誤擲出來。
  • 有時限的交換。 一个權杖請求若無回應,30 秒了後就會失敗,所以一个慢吞吞的權杖端點袂共所有的呼叫方拖牢咧。
  • 無物件通洩漏。 用戶端密鑰佮逐个存取權杖佇記錄檔、除錯輸出佮錯誤訊息內底攏會顯示做 [REDACTED]。

免權杖的操作(像列出 API 版本)從來袂傳送權杖,所以一个無憑證建立的用戶端嘛會當呼叫 in。

共密鑰留佇你的伺服器

用戶端密鑰認的是你的應用程式,毋是你的使用者。請共伊囥佇伺服器的設定抑是密鑰庫內底,千萬毋通共伊綴瀏覽器網頁抑是手機仔 App 做伙發布出去。

程式碼範例的語言

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);

這頁包的內容