OMSWallet
OMSWallet
WalletClient
Authentication and sessions
WalletClient.activeWallet
nil until auth completes or a session is restored, while a manual
wallet selection is pending, and after sign-out or session expiry. Same shape as
listWallets() entries.
WalletClient.session
nil exactly when
activeWallet is.
WalletClient.defaultSessionLifetimeSeconds
sessionLifetimeSeconds
(180 days, the maximum).
WalletClient.maxSessionLifetimeSeconds
sessionLifetimeSeconds the SDK accepts (180 days).
WalletClient.addSessionChangeObserver(_:)
observer on the main actor after every change of activeWallet or session, in
order and after the change (never during the call that made it). Add the observer first,
then read activeWallet and session, so no change is missed. An observer added while signed
out first receives the last .expired change, if a session expired since the last sign-in or
sign-out (for example while the app was not running).
WalletClient.startEmailAuth(email:sessionLifetimeSeconds:)
WalletClient.completeEmailAuth(code:walletSelection:walletType:)
WalletClient.signInWithOidcIdToken(idToken:issuer:audience:walletType:walletSelection:sessionLifetimeSeconds:provider:providerLabel:)
WalletClient.startOIDCRedirectAuth(provider:walletType:walletSelection:sessionLifetimeSeconds:loginHint:authorizeParams:)
WalletClient.startOIDCRedirectAuth(provider:omsRelayReturnURI:walletType:walletSelection:sessionLifetimeSeconds:loginHint:)
WalletClient.handleOIDCRedirectCallback(_:walletSelection:sessionLifetimeSeconds:)
WalletClient.listWallets()
WalletClient.useWallet(walletId:)
WalletClient.createWallet(walletType:reference:)
WalletClient.claimWallet(walletId:)
WalletClient.importWallet(privateKey:reference:)
WalletClient.getWalletImportRecipientKey(cipherSuite:)
WalletClient.importEncryptedWallet(walletType:keyMaterial:reference:)
WalletClient.getIdToken(ttlSeconds:customClaims:)
WalletClient.inspectRemoteCredential(credentialId:)
WalletClient.authorizeRemoteAccess(credentialId:network:grants:expiresAt:sessionId:)
sessionId
to create a session; pass an existing session ID to replace that session’s grants and
requested expiry without changing its signer. WaaS caps the effective expiry at the remote
credential’s expiry.
WalletClient.listAccess(pageSize:type:)
WalletClient.listAccessPage(pageSize:cursor:type:)
WalletClient.listAccessPages(pageSize:type:)
WalletClient.getRemoteAccessSession(sessionId:)
WalletClient.getRemoteAccessSessionUsage(sessionId:network:)
WalletClient.revokeAccess(credentialId:sessionId:)
listAccess() or
listAccessPage(pageSize:cursor:type:) first to retrieve the direct or remote grant. Omit
sessionId for a direct grant; for a remote grant, pass its session ID to revoke exactly
that session.
WalletClient.signOut()
WalletSelectionBehavior
CompleteAuthResult
PendingWalletSelection
WalletActivationResult
Wallet
WalletType
WalletKeyOrigin
WalletImportCipherSuite
WalletImportPrivateKey
WalletImportRecipientKey
EncryptedWalletImportKeyMaterial
WalletCredential
RemoteCredentialMetadata
SmartSessionGrant
AccessGrantType
RemoteAccessGrant
AccessGrant
AccessGrantPage
AuthorizedRemoteAccess
RemoteAccessSession
SmartSessionGrantUsage
CustomOIDCProviderConfiguration
OIDCAuthMode
OMSRelayOIDCProvider
OMSRelayOIDCProviders
StartOIDCRedirectAuthResult
OIDCRedirectAuthResult
OMSWalletSession
WalletClient.session is non-nil
exactly when WalletClient.activeWallet is.
OMSWalletSessionAuth
OMSWalletEmailSessionAuth
OMSWalletOidcSessionAuth
OMSWalletOidcSessionAuthFlow
OMSWalletSessionChangeEvent
WalletClient.activeWallet or WalletClient.session, with the state right after it.
OMSWalletExpiredSession
OMSWalletSessionChangeEvent.expired.