iOS және Android
Нативті қолданбалар адамдарды веб-көрініс арқылы емес, әрқашан жүйелік браузердегі ортаның Lobby беті арқылы кіргізеді: адамдар өз кіру кілттерін, сақталған құпиясөздерін және Usher сеансын пайдаланады, ал қолданба құпиясөзді ешқашан көрмейді. OpenID Connect-тің қалған бөлігін SDK-лар сіз үшін орындайды және токендерді құрылғыда сақтайды.
Қолданбаны тіркеңіз
Usher Console ішінде ортаны ашып, Қолданбалар → Жаңа қолданба → Мобильді немесе жұмыс үстелі тармағын таңдаңыз. Оған өзіңізге тиесілі доменнен құрылған жеке пайдаланудағы қайта бағыттауды беріңіз, мысалы, com.example.notes:/oauth/callback. Қолданба клиент ID-ын алады, құпия алмайды: телефондағы қолданба оны сақтай алмайды, сондықтан оның орнына PKCE пайдаланады. Console екі платформаның да баптауын көрсетеді.
iOS және macOS
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
// 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-ларыңыз бөлімін қараңыз.