PortalAuth method. Fetches a fresh authorize URL from Portal and returns it; your app opens it (for example with UIApplication.shared.open) and later forwards the redirect to handleRedirect. For a flow that also owns the browser, use signInWithApple.
Returns
AuthorizeUrlResult: Contains the following:authorizeUrl:String, the Apple authorize URL, trimmed of surrounding whitespace.
PortalAuthError.authMethodUnavailable(.apple): Apple is not enabled for this auth environment. Not retryable; checkgetMethods().PortalAuthError.accountAbstractionUnavailable(message:):isAccountAbstracted: truewas requested but gas sponsorship is not enabled or configured.PortalRequestsError.unauthorized: TheredirectUrlis not on the environment’s allow list, the Auth Environment ID does not match an environment with authentication switched on, or an enabled provider is missing its credentials in the dashboard. That last case fails the call for every provider, not only the misconfigured one.- Other transport errors unchanged.
- Call it on every tap and never cache the result. The URL embeds a single-use
stateshared by both provider URLs in one backend response, so a stale URL fails at the provider with no useful message. - The redirect arrives through the OS, like a magic link, and works with an
https://Universal Link redirect; see Register your redirect. - Apple posts the result to Portal’s callback URL (
https://api.portalhq.io/api/v3/auth/oauth/callback/<AUTH_ENVIRONMENT_ID>), which you register as a Return URL on your Services ID. Portal then redirects to yourredirectUrl, so your app only ever sees the final redirect. - Portal identifies an end user by email. A user who picks Hide My Email becomes a distinct end user, with a distinct wallet, from the same person signing in with Google or a magic link. Apple also supplies the email only on the user’s first consent for a given Services ID, so changing the Services ID is a breaking change for existing users. See Apple OAuth.
- The button that starts the flow is your own control. Follow Apple’s Human Interface Guidelines for the Sign in with Apple button.
- If the user cancels at Apple, Portal redirects to your
redirectUrlwith?error=oauth_failed, whichhandleRedirectthrows asPortalAuthError.authenticationFailed(error:). - Available starting from SDK version 8.0.0.