{"templateId":"markdown","sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":["CodeBlockCustom","CodeItem"]},"type":"markdown"},"seo":{"title":"Flutter advanced setup","siteUrl":"https://developers.frontegg.com/","llmstxt":{"title":"Frontegg Developer Documentation","description":"Authentication, authorization, and user management for Customer Identity, plus Agen for SaaS and Agen for Work. Guides, SDKs, and API references.","sections":[{"title":"Customer Identity (CIAM)","description":"Auth, SSO, SCIM, entitlements, and user management — guides, SDKs, and APIs.","includeFiles":["ciam/**/*.md"],"excludeFiles":[]},{"title":"Agen for SaaS","description":"Agentic access and authorization for SaaS products.","includeFiles":["agen-for-saas/**/*.md"],"excludeFiles":[]},{"title":"Agen for Work","description":"Agentic access and authorization for internal and workforce use.","includeFiles":["agen-for-work/**/*.md"],"excludeFiles":[]},{"title":"Platform","description":"Shared platform overview.","includeFiles":["platform/**/*.md"],"excludeFiles":[]}],"excludeFiles":["internal-docs/**","ciam/guides/env-settings/inject-client-ip.md","CLAUDE.md",".claude/**","**/images/**"],"hide":false}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"flutter-advanced-setup","__idx":0},"children":["Flutter advanced setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this guide, you'll find an overview and best practices for enabling advanced features and using built in functions for biometric authentication (passkeys) and step-up."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"custom-loader-ios","__idx":1},"children":["Custom loader iOS"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To customize the loader for iOS when using Embedded mode, you can set up a custom loader by modifying your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AppDelegate.swift"]}," file. The custom loader will be displayed during authentication processes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["First, ensure that Embedded mode is enabled in your configuration."]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["xml"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":" <plist version=\"1.0\">\n<dict>\n\t<key>embeddedMode</key>\n\t<true/>\n\t...\n</dict>\n</plist>\n","lang":"xml"},"children":[]}]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's how to implement a custom loader:"]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["Swift"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"import SwiftUI\nimport FronteggSwift\n\n@main\n@objc class AppDelegate: FlutterAppDelegate {\n    override func application(\n        _ application: UIApplication,\n        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n    ) -> Bool {\n         ...\n        // Setup Loader for Frontegg Embedded Loading\n        // Can be any view\n        DefaultLoader.customLoaderView = AnyView(Text(\"Loading...\"))\n        \n        return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n    }\n    ...\n}\n","lang":"swift"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"custom-loader-android","__idx":2},"children":["Custom loader Android"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To customize the loader for Android when using Embedded Activity mode, you can set up a custom loader by modifying your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MainActivity.kt"]}," file. The custom loader will be displayed during authentication processes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["First, ensure that Embedded Activity mode is enabled in your configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's how to implement a custom loader:"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["Groovy"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"groovy","header":{"controls":{"copy":{}}},"source":"import android.content.res.ColorStateList\nimport android.graphics.Color\nimport android.os.Bundle\nimport android.widget.ProgressBar\nimport com.frontegg.android.ui.DefaultLoader\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity : FlutterActivity() {\n  override fun onCreate(savedInstanceState: Bundle?) {\n    super.onCreate(savedInstanceState)\n\n    // Setup Loader for Frontegg Embedded Activity Loading\n    DefaultLoader.setLoaderProvider {\n      // Can be any view\n      val progressBar = ProgressBar(it)\n      val colorStateList = ColorStateList.valueOf(Color.GREEN)\n      progressBar.indeterminateTintList = colorStateList\n\n      progressBar\n    }\n  }\n}\n","lang":"groovy"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-up-authentication","__idx":3},"children":["Step-up authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Step-up authentication allows you to temporarily elevate a user's authentication level to perform sensitive actions. This is useful for operations like updating credentials, accessing confidential data, or performing secure transactions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxAge"]}," (optional): How long the elevated session is considered valid, in seconds."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completion"]},": A closure called after authentication finishes. If step-up fails, it receives an error."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"stepup--","__idx":4},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["stepUp"]}," -"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Starts the step-up authentication flow. This will usually trigger a stronger authentication method ( e.g. biometric, MFA, etc)."]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["Dart"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"await stepUp(maxAge: Duration(minutes: 5));\n"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"issteppedup--","__idx":5},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSteppedUp"]}," -"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This method checks if the user has recently completed a step-up authentication and whether it is still valid."]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["Dart"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"final isElevated = await isSteppedUp(maxAge: Duration(minutes: 5));\nif (isElevated) {\n    // Proceed with sensitive action\n} else {\n    // Prompt user to step up\n}\n"},"children":[]}]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example:"]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlockCustom","attributes":{"tabs":["Dart"]},"children":[{"$$mdtype":"Tag","name":"CodeItem","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Future<void> performSensitiveAction() async {\n    final steppedUp = await isSteppedUp(maxAge: Duration(minutes: 5));\n      \n    if (!steppedUp) {\n        await stepUp(maxAge: Duration(minutes: 5));\n    }\n      \n    // Continue with the sensitive action\n}\n"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"frontegg-flutter-api-reference","__idx":6},"children":["Frontegg Flutter API Reference"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"properties","__idx":7},"children":["Properties"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Property"},"children":["Property"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currentState"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gets the current state of the Frontegg instance. Returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FronteggState"]}," which includes information such as authentication status, loading status, and user details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["stateChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A stream that emits changes to the FronteggState. Provides real-time updates on the state of authentication, user details, and loading statuses."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"methods","__idx":8},"children":["Methods"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"authentication-methods","__idx":9},"children":["Authentication methods"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["login"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["loginHint"]}," (optional): String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates the authentication process. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["loginHint"]}," pre-fills the login field in the Frontegg Login Box."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["loginWithPasskeys"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authenticates the user using passkeys."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["registerPasskeys"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Registers passkeys for the user."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["logout"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Logs out the user and clears user-related data."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Refreshes the authentication token if needed. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," if successful."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"social--direct-login-methods","__idx":10},"children":["Social & direct login methods"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["directLogin"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["url"]}," (required): String",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ephemeralSession"]},": bool = true",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["additionalQueryParams"]},": Map<String, String>?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates a direct login using a provided URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["socialLogin"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provider"]}," (required): FronteggSocialProvider",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ephemeralSession"]},": bool = true",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["additionalQueryParams"]},": Map<String, String>?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates a social login using the specified provider (e.g., Google, Facebook)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customSocialLogin"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," (required): String",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ephemeralSession"]},": bool = true",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["additionalQueryParams"]},": Map<String, String>?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates a custom social login using a unique identifier."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"account-tenant-management","__idx":11},"children":["Account (tenant) management"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["switchTenant"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tenantId"]}," (required): String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Switches the user's active tenant. IDs available from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["User.tenants.tenantId"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"authorization--security","__idx":12},"children":["Authorization & security"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestAuthorize"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshToken"]}," (required): String",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"- ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deviceTokenCookie"]},": String?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates authorization request. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FronteggUser"]}," if successful, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," if fails."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSteppedUp"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxAge"]},": Duration?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Checks if user has completed step-up authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["stepUp"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxAge"]},": Duration?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Initiates the step-up authentication process."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"utility-methods","__idx":13},"children":["Utility methods"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameters"},"children":["Parameters"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dispose"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cancels the subscription to the state stream. Call when object is no longer needed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["getConstants"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["None"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fetches the Frontegg constants containing configuration values. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FronteggConstants"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"error-handling","__idx":14},"children":["Error handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All methods can throw a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FronteggException"]}," for platform-specific errors. The error handling system automatically converts platform exceptions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FronteggException"]}," instances."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"common-error-scenarios","__idx":15},"children":["Common error scenarios:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Authentication failures"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Network connectivity issues"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Invalid parameters"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Platform-specific errors"]}]}]},"headings":[{"value":"Flutter advanced setup","id":"flutter-advanced-setup","depth":2},{"value":"Custom loader iOS","id":"custom-loader-ios","depth":3},{"value":"Custom loader Android","id":"custom-loader-android","depth":3},{"value":"Step-up authentication","id":"step-up-authentication","depth":3},{"value":"stepUp -","id":"stepup--","depth":4},{"value":"isSteppedUp -","id":"issteppedup--","depth":4},{"value":"Frontegg Flutter API Reference","id":"frontegg-flutter-api-reference","depth":3},{"value":"Properties","id":"properties","depth":4},{"value":"Methods","id":"methods","depth":4},{"value":"Authentication methods","id":"authentication-methods","depth":5},{"value":"Social & direct login methods","id":"social--direct-login-methods","depth":5},{"value":"Account (tenant) management","id":"account-tenant-management","depth":5},{"value":"Authorization & security","id":"authorization--security","depth":5},{"value":"Utility methods","id":"utility-methods","depth":5},{"value":"Error handling","id":"error-handling","depth":5},{"value":"Common error scenarios:","id":"common-error-scenarios","depth":5}],"frontmatter":{"seo":{"title":"Flutter advanced setup"}},"lastModified":"2025-11-04T13:25:50.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ciam/sdks/mobile/flutter/advanced-old","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}