Pereiti prie turinio
Dokumentacija · iOS ir Android

iOS ir Android

Vietinės programos prijungia žmones per jų aplinkos Lobby sistemos naršyklėje, niekada ne žiniatinklio rodinyje: žmonės naudoja savo slaptaraktus, išsaugotus slaptažodžius ir Usher sesiją, o programa niekada nemato slaptažodžio. Likusią OpenID Connect dalį SDK atlieka už jus ir laiko žetonus įrenginyje.

Užregistruokite programą

Usher Console atidarykite aplinką, tada Programos → Nauja programa → Mobilioji arba stalinio kompiuterio programa. Suteikite jai privataus naudojimo peradresavimą, sudarytą iš jums priklausančio domeno, pavyzdžiui, com.example.notes:/oauth/callback. Programa gauna kliento ID ir jokios paslapties: telefono programa jos išsaugoti negali, todėl vietoj to naudoja PKCE. Console parodo sąranką abiem platformoms.

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

Žetonai laikomi raktinėje, tik šiame įrenginyje.

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

Prisijungimas atidaromas Custom Tab skirtuke. Sesija užšifruojama raktu, laikomu Android Keystore.

Ką tikrina SDK

  • PKCE, state ir nonce kiekvieno prisijungimo metu, taip pat atsakyme nurodytą išdavėją (RFC 9207).
  • ID žetono parašą pagal jūsų aplinkos raktus, taip pat jo išdavėją, auditoriją ir galiojimo pabaigą.
  • Atnaujinimo žetonai keičiami: kiekvienas naudojamas vieną kartą. Atsijungus jis atšaukiamas Usher pusėje.
  • DPoP, jei jį įjungiate: žetonai susiejami su įrenginio raktu ir nukopijuoti kitur yra beverčiai.

Norėdami prieigos žetonu kviesti savo API, pavadinkite API ir paprašykite jos per resources: žr. Jūsų API.