ਸਮੱਗਰੀ ’ਤੇ ਜਾਓ
ਦਸਤਾਵੇਜ਼ · iOS ਅਤੇ Android

iOS ਅਤੇ Android

ਨੇਟਿਵ ਐਪ ਲੋਕਾਂ ਨੂੰ ਸਿਸਟਮ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਉਹਨਾਂ ਦੇ ਐਨਵਾਇਰਨਮੈਂਟ ਦੀ ਲਾਬੀ ਰਾਹੀਂ ਸਾਈਨ ਇਨ ਕਰਵਾਉਂਦੇ ਹਨ, ਕਦੇ ਵੀ ਵੈੱਬ ਵਿਊ ਵਿੱਚ ਨਹੀਂ: ਲੋਕ ਆਪਣੀਆਂ ਪਾਸਕੀਆਂ, ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਅਤੇ 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 ਟੋਕਨ ਦਾ ਸਿਗਨੇਚਰ ਤੁਹਾਡੇ ਐਨਵਾਇਰਨਮੈਂਟ ਦੀਆਂ ਕੁੰਜੀਆਂ ਨਾਲ, ਅਤੇ ਇਸਦਾ ਇਸ਼ੂਅਰ, ਦਰਸ਼ਕ (audience) ਅਤੇ ਮਿਆਦ।
  • ਰਿਫ੍ਰੈਸ਼ ਟੋਕਨ ਬਦਲਦੇ ਰਹਿੰਦੇ ਹਨ: ਹਰ ਇੱਕ ਇੱਕ ਵਾਰ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਸਾਈਨ ਆਊਟ ਕਰਨ ’ਤੇ ਇਹ Usher ’ਤੇ ਰੱਦ ਹੋ ਜਾਂਦਾ ਹੈ।
  • DPoP, ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ: ਡਿਵਾਈਸ ਦੀ ਇੱਕ ਕੁੰਜੀ ਨਾਲ ਬੰਨ੍ਹੇ ਟੋਕਨ, ਜੋ ਕਿਤੇ ਹੋਰ ਕਾਪੀ ਕਰਨ ’ਤੇ ਬੇਕਾਰ ਹਨ।

ਐਕਸੈਸ ਟੋਕਨ ਨਾਲ ਆਪਣਾ API ਕਾਲ ਕਰਨ ਲਈ, resources ਨਾਲ API ਦਾ ਨਾਮ ਦੇ ਕੇ ਉਸਨੂੰ ਮੰਗੋ: ਦੇਖੋ ਤੁਹਾਡੇ ਆਪਣੇ API।