Preskoči na sadržaj
Dokumentacija · iOS i Android

iOS i Android

Izvorne aplikacije prijavljuju ljude putem stranice Lobby njihova okruženja u pregledniku sustava, nikad u web-prikazu: ljudi koriste svoje pristupne ključeve, spremljene lozinke i sesiju platforme Usher, a aplikacija nikad ne vidi lozinku. SDK-ovi umjesto vas obavljaju ostatak protokola OpenID Connect i čuvaju tokene na uređaju.

Registrirajte aplikaciju

U sučelju Usher Console otvorite okruženje, a zatim Aplikacije → Nova aplikacija → Mobilna ili stolna. Dodijelite joj preusmjeravanje za privatnu upotrebu izvedeno iz domene koju posjedujete, kao što je com.example.notes:/oauth/callback. Aplikacija dobiva ID klijenta bez tajne: aplikacija na telefonu je ne može čuvati, pa umjesto toga koristi PKCE. Console prikazuje postavljanje za obje platforme.

iOS i 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)

Tokeni se čuvaju u privjesku ključeva (Keychain), samo na ovom uređaju.

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

Prijava se otvara u prilagođenoj kartici (Custom Tab). Sesija je šifrirana ključem iz sustava Android Keystore.

Što SDK-ovi provjeravaju

  • PKCE, state i nonce pri svakoj prijavi te izdavatelja navedenog u odgovoru (RFC 9207).
  • Potpis ID tokena prema ključevima vašeg okruženja te njegova izdavatelja, publiku i istek.
  • Tokeni za osvježavanje se izmjenjuju: svaki se koristi jednom. Odjava ga opoziva na platformi Usher.
  • DPoP, ako ga uključite: tokeni vezani uz ključ na uređaju, beskorisni ako se kopiraju drugamo.

Da biste pristupnim tokenom pozvali vlastiti API, imenujte API i zatražite ga s resources: pogledajte Vaši vlastiti API-ji.