OAuthUserConfiguration constructor

OAuthUserConfiguration({
  1. required Uri portalUri,
  2. required String clientId,
  3. required Uri redirectUri,
  4. String culture = '',
  5. int refreshTokenExpirationInterval = 0,
  6. int refreshTokenExchangeInterval = 0,
  7. int federatedTokenExpirationInterval = 0,
  8. bool showCancelButton = true,
  9. UserInterfaceStyle userInterfaceStyle = UserInterfaceStyle.unspecified,
  10. bool preferPrivateWebBrowserSession = false,
})

Creates an OAuth configuration with the specified parameters.

Parameters:

  • portalUri — The URL of the portal to authenticate with.
  • clientId — A unique identifier associated with an application registered with the portal that assists with client/server OAuth authentication.
  • redirectUri — The URL that the OAuth login page redirects to when authentication completes.
  • culture — The OAuth login page is displayed in the language specified by the given culture code.
  • refreshTokenExpirationInterval — The requested expiration interval (in minutes) for the refreshToken generated by the OAuth request. The max interval can be overridden by the portal administrator.
  • refreshTokenExchangeInterval — The requested exchange interval (in minutes) for the OAuth refresh token. Use this to exchange a refresh token before it expires. This will limit the number of times a user will have to login because of expiring tokens.
  • federatedTokenExpirationInterval — The requested expiration interval (in minutes) for federated tokens generated using the OAuth credential.
  • showCancelButton — A Boolean value indicating whether to show "Cancel" button on the OAuth login page.
  • userInterfaceStyle — Constants indicating the interface style for the OAuth login page.
  • preferPrivateWebBrowserSession — A Boolean value indicating whether the OAuth login session should ask the browser for a private authentication session.

Implementation

factory OAuthUserConfiguration({
  required Uri portalUri,
  required String clientId,
  required Uri redirectUri,
  String culture = '',
  int refreshTokenExpirationInterval = 0,
  int refreshTokenExchangeInterval = 0,
  int federatedTokenExpirationInterval = 0,
  bool showCancelButton = true,
  UserInterfaceStyle userInterfaceStyle = UserInterfaceStyle.unspecified,
  bool preferPrivateWebBrowserSession = false,
}) {
  _initializeArcGISEnvironmentIfNeeded();
  final corePortalUri = _CString(portalUri.toString());
  final coreClientId = _CString(clientId);
  final coreRedirectUri = _CString(redirectUri.toString());
  final coreCulture = _CString(culture);
  final handle = _withThrowingErrorHandler((errorHandler) {
    return runtimecore.RT_OAuthUserConfiguration_create(
      corePortalUri.bytes,
      coreClientId.bytes,
      coreRedirectUri.bytes,
      coreCulture.bytes,
      refreshTokenExpirationInterval,
      refreshTokenExchangeInterval,
      federatedTokenExpirationInterval,
      showCancelButton,
      userInterfaceStyle.coreValue,
      preferPrivateWebBrowserSession,
      errorHandler,
    );
  });
  final OAuthUserConfiguration object =
      OAuthUserConfiguration._withHandle(handle);
  object._portalUri.cache(portalUri);
  object._redirectUri.cache(redirectUri);
  return object;
}