iOS-ഉം Android-ഉം
നേറ്റീവ് ആപ്പുകൾ ആളുകളെ സിസ്റ്റം ബ്രൗസറിൽ, അവരുടെ എൻവയോൺമെന്റിന്റെ ലോബി വഴി സൈൻ ഇൻ ചെയ്യിക്കുന്നു, ഒരിക്കലും വെബ് വ്യൂവിൽ അല്ല: ആളുകൾ അവരുടെ പാസ്കീകളും സേവ് ചെയ്ത പാസ്വേഡുകളും 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-കൾ കാണുക.