Salt la conținut
Documentație · iOS și Android

iOS și Android

Aplicațiile native conectează oamenii prin Lobby-ul mediului, în browserul sistemului, niciodată într-un web view: oamenii își folosesc cheile de acces, parolele salvate și sesiunea Usher, iar aplicația nu vede niciodată vreo parolă. SDK-urile se ocupă de restul OpenID Connect pentru dvs. și păstrează tokenurile pe dispozitiv.

Înregistrați aplicația

În Usher Console, deschideți mediul, apoi Aplicații → Aplicație nouă → Mobil sau desktop. Dați-i o redirecționare cu schemă privată, formată dintr-un domeniu pe care îl dețineți, cum ar fi com.example.notes:/oauth/callback. Aplicația primește un ID client și niciun secret: o aplicație de pe telefon nu poate păstra unul, așa că folosește în schimb PKCE. Console afișează configurarea pentru ambele 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)

Tokenurile sunt păstrate în Portchei, doar pe acest dispozitiv.

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

Conectarea se deschide într-un Custom Tab. Sesiunea este criptată cu o cheie din Android Keystore.

Ce verifică SDK-urile

  • PKCE, state și nonce la fiecare conectare, plus emitentul numit în răspuns (RFC 9207).
  • Semnătura tokenului ID, cu cheile mediului, precum și emitentul, audiența și expirarea lui.
  • Tokenurile de reîmprospătare se rotesc: fiecare este folosit o singură dată. Deconectarea îl revocă la Usher.
  • DPoP, dacă îl activați: tokenuri legate de o cheie de pe dispozitiv, inutile dacă sunt copiate în altă parte.

Pentru a apela propriul API cu tokenul de acces, denumiți API-ul și cereți-l cu resources: consultați API-urile dvs..