public interface OidcBrowserNative

Service-provider interface that SystemBrowser uses to dispatch a sign-in flow through the OS’s hardened sign-in surface (ASWebAuthenticationSession on iOS, androidx.browser.customtabs / Credential Manager on Android).

The platform port supplies an implementation named com.codename1.io.oidc.OidcBrowserNativeImpl; SystemBrowser loads it via Class.forName at first use. Cn1lib authors who want to plug in their own implementation (for example, one backed by a NativeInterface so a 3rd-party SDK can drive the browser) can declare a subtype and register it with SystemBrowser.setNative(OidcBrowserNative) – there is no need to extend NativeInterface from this interface itself.

redirectScheme is the scheme half of the registered redirect URI (e.g. the "com.example.app" part of "com.example.app:/oauth2redirect").

Methods

public abstract boolean isSupported()true if this implementation is usable on the current device / OS version.
public abstract String startAuthorization(String authUrl, String redirectScheme)Starts the OS sign-in sheet for authUrl and resolves when the user is redirected to a URL matching redirectScheme.

Method details

isSupported

public abstract boolean isSupported()
true if this implementation is usable on the current device / OS version. The default fallback (SystemBrowser’s in-app BrowserWindow) takes over when this returns false, so a port that has a class on the file system but cannot satisfy the runtime requirements (e.g. iOS 11 lacks ASWebAuthenticationSession) should report false and the call will degrade gracefully.

startAuthorization

public abstract String startAuthorization(String authUrl, String redirectScheme)

Starts the OS sign-in sheet for authUrl and resolves when the user is redirected to a URL matching redirectScheme. The return value is the full redirect URL (including query / fragment), or null if the user cancelled.

Implementations are expected to be blocking: the caller is on a worker thread and waits for the result.