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)ಟೋಕನ್ಗಳನ್ನು Keychain ನಲ್ಲಿ, ಈ ಸಾಧನದಲ್ಲಿ ಮಾತ್ರ ಇಡಲಾಗುತ್ತದೆ.
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 ಟೋಕನ್ನ ಸಹಿ, ಮತ್ತು ಅದರ ಇಶ್ಯೂಯರ್, audience ಮತ್ತು ಅವಧಿ ಮುಕ್ತಾಯ.
- ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳು ಬದಲಾಗುತ್ತವೆ: ಪ್ರತಿಯೊಂದನ್ನೂ ಒಮ್ಮೆ ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ. ಸೈನ್ ಔಟ್ ಮಾಡಿದಾಗ Usher ನಲ್ಲಿ ಅದನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತದೆ.
- DPoP, ನೀವು ಅದನ್ನು ಆನ್ ಮಾಡಿದರೆ: ಸಾಧನದಲ್ಲಿರುವ ಕೀಗೆ ಬಂಧಿಸಿದ ಟೋಕನ್ಗಳು, ಬೇರೆಡೆ ನಕಲಿಸಿದರೆ ನಿರುಪಯುಕ್ತ.
ಆ್ಯಕ್ಸೆಸ್ ಟೋಕನ್ನೊಂದಿಗೆ ನಿಮ್ಮದೇ API ಅನ್ನು ಕರೆಯಲು, API ಗೆ ಹೆಸರಿಡಿ ಮತ್ತು resources ಮೂಲಕ ಅದನ್ನು ಕೇಳಿ: ನಿಮ್ಮದೇ API ಗಳು ನೋಡಿ.