OAuth-asiakkaan luominen
API-versio 2026-10-affable-towhee
Ennen kuin painat Integraatiot-sivulla ”Luo asiakas” -painiketta, päätä kolme asiaa: mitä asiakas saa tehdä, mikä prosessi säilyttää sen salaisuutta ja kuka maksaa sen kutsut. Todennus-opas kertoo säännöt; tämä sivu soveltaa niitä kahteen kuvitteelliseen yritykseen, Luba ja Farducks.
Luba: Dive Deck
Luba liikennöi itseohjautuvilla sukellusveneillä kuljetus- ja kyytipalveluna. Sen Dive Deck näyttää jokaiselle matkustajalle hytin näytöllä sukelluksen fraasin sillä kielellä, jota tämä opiskelee, ja Luban operatiivinen tiimi seuraa, paljonko kiintiöstä on jäljellä.
Luba luo yhden asiakkaan, Luba Dive Deck, jolle sallitaan ”Luo sanastoa” (vocab:generate) ja ”Lue käyttötietoja” (usage:read) ja jonka laskutustapa on ”Tilauksesi kiintiö” (allowance). Kaksi prosessia jakaa sen, ja kumpikin pyytää vaihdossa vain tarvitsemaansa oikeuslaajuutta. Vaihto, josta scope puuttuu, saa kaikki asiakkaalle sallitut oikeuslaajuudet; vaihto, joka pyytää asiakkaalle sallimatonta oikeuslaajuutta, hylätään kokonaan koodilla invalid_scope, eikä pyyntöä koskaan kavenneta hiljaisesti.
Lähetyspalvelin kirjoittaa kunkin sukelluksen fraasit. Se pyytää pelkkää oikeuslaajuutta vocab:generate, joten siltä vuotanut tunnus ei voi lukea Luban käyttötietoja.
export LINGARA_TOKEN="$(curl -sS --fail-with-body -X POST "https://api.getlingara.com/oauth/token" \
-u "$LINGARA_CLIENT_ID:$LINGARA_CLIENT_SECRET" \
-d "grant_type=client_credentials" \
--data-urlencode "scope=vocab:generate" | jq -r '.access_token // error(.error)')"curl -N -X POST "https://api.getlingara.com/v1/vocab/stream" \
-H "Authorization: Bearer $LINGARA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"level":2,"source_lang":"en","target_lang":"zh","count":8}'Operatiivinen kojelauta on toinen palvelinpuolen prosessi, jolla on sama asiakastunniste ja salaisuus. Se pyytää pelkkää oikeuslaajuutta usage:read ja lukee, mitä kiintiöstä on jäljellä.
export LINGARA_TOKEN="$(curl -sS --fail-with-body -X POST "https://api.getlingara.com/oauth/token" \
-u "$LINGARA_CLIENT_ID:$LINGARA_CLIENT_SECRET" \
-d "grant_type=client_credentials" \
--data-urlencode "scope=usage:read" | jq -r '.access_token // error(.error)')"curl "https://api.getlingara.com/v1/usage" \
-H "Authorization: Bearer $LINGARA_TOKEN"Molemmat prosessit toimivat Luban palvelimilla. Hytin tabletti pyytää fraasit lähetyspalvelimelta eikä koskaan säilytä salaisuutta tai tunnusta, koska kaikki, mikä on matkustajan ulottuvilla olevassa laitteessa, voidaan lukea. Todennus-oppaan kohta Pidä salaisuudet ja tunnukset palvelimella kertoo miksi.
Sama asiakas projektina, jonka voit kloonata ja ajaa: integrations/luba-dive-deck
Farducks: Batter Rewards
Farducks on fish and chips -lähikauppaketju. Sillä aikaa kun tilaus paistuu, Batter Rewards -kanta-asiakassovellus pyytää Farducksin omalta taustapalvelulta lyhyen tuntisuunnitelman ja lukee sen sitten takaisin. Sovellus ja kassat kutsuvat Farducksin taustapalvelua, eivät koskaan Lingaraa, joten kummallakaan ei ole salaisuutta.
Farducks luo yhden asiakkaan, Farducks Batter Rewards, jolle sallitaan ”Luo tuntisuunnitelmia” (lesson_plans:write) ja ”Lue tuntisuunnitelmia” (lesson_plans:read) ja jonka laskutustapa on ”Tilauksesi kiintiö” (allowance). Se on tällä hetkellä ainoa laskutustapa, jolla asiakkaan voi luoda, ja asiakkaan laskutustapa lukitaan sen luontihetkellä. Toinen tapa, metered (”Maksu käytön mukaan”), kuvataan Todennus-oppaan kohdassa Kuka maksaa kutsun.
Taustapalvelu pyytää pelkkää oikeuslaajuutta lesson_plans:write ja luo suunnitelman. Vastaus suoratoistetaan, ja sen started-tapahtuma sisältää suunnitelman plan_id-tunnisteen.
export LINGARA_TOKEN="$(curl -sS --fail-with-body -X POST "https://api.getlingara.com/oauth/token" \
-u "$LINGARA_CLIENT_ID:$LINGARA_CLIENT_SECRET" \
-d "grant_type=client_credentials" \
--data-urlencode "scope=lesson_plans:write" | jq -r '.access_token // error(.error)')"curl -N -X POST "https://api.getlingara.com/v1/lesson-plans" \
-H "Authorization: Bearer $LINGARA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"context":"Ordering food at a night market","source_lang":"en","target_lang":"zh","level":2}'Aseta ID:n arvoksi tuo plan_id, pyydä sitten oikeuslaajuutta lesson_plans:read ja lue suunnitelma takaisin. Yksi vaihto voi pyytää useita asiakkaan oikeuslaajuuksia välilyönnein eroteltuina kentässä scope; kukin tämän sivun komento pyytää yhtä, koska kukin koostuu yhdestä kutsusta.
export LINGARA_TOKEN="$(curl -sS --fail-with-body -X POST "https://api.getlingara.com/oauth/token" \
-u "$LINGARA_CLIENT_ID:$LINGARA_CLIENT_SECRET" \
-d "grant_type=client_credentials" \
--data-urlencode "scope=lesson_plans:read" | jq -r '.access_token // error(.error)')"curl "https://api.getlingara.com/v1/lesson-plans/$ID" \
-H "Authorization: Bearer $LINGARA_TOKEN"Eräänä päivänä salaisuus liitetään tukipyyntöön. Farducks painaa Integraatiot-sivulla ”Uusi salaisuus” -painiketta ja ottaa uuden salaisuuden käyttöön taustapalvelussa, odottaa, kunnes vanhan salaisuuden ”Viimeksi käytetty” -päiväys lakkaa muuttumasta, ja painaa sitten vanhan salaisuuden kohdalla ”Peruuta”. Siitä hetkestä alkaen jokainen käyttöoikeustunnus, joka on saatu vaihtamalla vanha salaisuus, hylätään. Todennus-oppaan kohta Kierrätä salaisuus kertoo kahden salaisuuden rajasta ja siitä, miksi asiakkaan ainoaa salaisuutta ei voi peruuttaa.
Sama asiakas projektina, jonka voit kloonata ja ajaa: integrations/farducks-batter-rewards
Mitä seuraavaksi
Todennus-opas käsittelee vaihdon virheet, sen, mitä tehdä tunnuksen vanhetessa, sekä kierrätyssäännön. Versiot-opas käsittelee version, johon asiakas on kiinnitetty, ja sen, miten yhdelle kutsulle valitaan toinen versio.
Jos käännös ja englanninkielinen viite poikkeavat toisistaan, englanninkielinen viite on oikea.