Мазмұнға өту
Құжаттама · iOS және Android

iOS және Android

Нативті қолданбалар адамдарды веб-көрініс арқылы емес, әрқашан жүйелік браузердегі ортаның Lobby беті арқылы кіргізеді: адамдар өз кіру кілттерін, сақталған құпиясөздерін және Usher сеансын пайдаланады, ал қолданба құпиясөзді ешқашан көрмейді. OpenID Connect-тің қалған бөлігін SDK-лар сіз үшін орындайды және токендерді құрылғыда сақтайды.

Қолданбаны тіркеңіз

Usher Console ішінде ортаны ашып, Қолданбалар → Жаңа қолданба → Мобильді немесе жұмыс үстелі тармағын таңдаңыз. Оған өзіңізге тиесілі доменнен құрылған жеке пайдаланудағы қайта бағыттауды беріңіз, мысалы, com.example.notes:/oauth/callback. Қолданба клиент ID-ын алады, құпия алмайды: телефондағы қолданба оны сақтай алмайды, сондықтан оның орнына PKCE пайдаланады. Console екі платформаның да баптауын көрсетеді.

iOS және 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)

Токендер Кілттер байламында, тек осы құрылғыда сақталады.

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

Кіру Custom Tab ішінде ашылады. Сеанс Android Keystore қоймасындағы кілтпен шифрланады.

SDK-лар не тексереді

  • Әр кіруде PKCE, state және nonce мәндерін, сондай-ақ жауапта аталған эмитентті (RFC 9207).
  • ID токенінің қолтаңбасын ортаңыздың кілттері бойынша, сондай-ақ оның эмитентін, аудиториясын және мерзімін.
  • Жаңарту токендері ауысып отырады: әрқайсысы бір рет пайдаланылады. Шыққанда ол Usher жағында кері қайтарылады.
  • DPoP, егер оны қоссаңыз: токендер құрылғыдағы кілтке байланады және басқа жерге көшірілсе, пайдасыз болады.

Қатынас токенімен өз API-ыңызды шақыру үшін API-ды атап, оны resources арқылы сұраңыз: Өз API-ларыңыз бөлімін қараңыз.