Ugrás a tartalomhoz
Dokumentáció · iOS és Android

iOS és Android

A natív appok a rendszerböngészőben, a környezetük Lobbyjában jelentkeztetik be az embereket, soha nem webnézetben: így az emberek használhatják a jelkulcsaikat, a mentett jelszavaikat és az Usher-munkamenetüket, az app pedig soha nem lát jelszót. Az OpenID Connect többi részét az SDK-k végzik el helyetted, és a tokeneket az eszközön tartják.

Regisztráld az appot

Az Usher Console-ban nyisd meg a környezetet, majd válaszd az Alkalmazások → Új alkalmazás → Mobil vagy asztali lehetőséget. Adj meg neki egy privát sémás átirányítást egy saját domainedből képezve, például com.example.notes:/oauth/callback. Az app ügyfél-azonosítót kap, titkos kulcsot nem: egy telefonon futó app nem tudná titokban tartani, ezért helyette PKCE-t használ. A Console mindkét platformhoz megmutatja a beállítás lépéseit.

iOS és macOS

swift
import UsherKit

let usher = UsherClient(configuration: .init(
    issuer: URL(string: "https://login.example.com")!,
    clientID: "…",
    redirectURI: URL(string: "com.example.notes:/oauth/callback")!))

let session = try await usher.signIn()
var request = URLRequest(url: URL(string: "https://api.example.com/notes")!)
try await usher.authorize(&request)

A tokenek a Kulcskarikában vannak, csak ezen az eszközön.

Android

kotlin
// build.gradle.kts: manifestPlaceholders["usherRedirectScheme"] = "com.example.notes"
val usher = Usher.client(context, UsherConfiguration(
    issuer = "https://login.example.com",
    clientId = "…",
    redirectUri = "com.example.notes:/oauth/callback"))

val session = usher.signIn(Usher.customTabs(activity))

A bejelentkezés egy Custom Tabben nyílik meg. A munkamenetet egy Android Keystore-ban tárolt kulcs titkosítja.

Mit ellenőriznek az SDK-k

  • PKCE, state és nonce minden bejelentkezésnél, valamint a válaszban megnevezett kibocsátó (RFC 9207).
  • Az ID-token aláírása a környezeted kulcsaival, valamint a kibocsátója, a célközönsége és a lejárata.
  • A frissítési tokenek cserélődnek: mindegyik egyszer használható. Kijelentkezéskor az Usher visszavonja.
  • DPoP, ha bekapcsolod: az eszközön lévő kulcshoz kötött tokenek, amelyek máshová másolva használhatatlanok.

Ha a hozzáférési tokennel a saját API-dat szeretnéd hívni, nevezd meg az API-t, és kérd a resources paraméterrel: lásd Saját API-k.