Skip to main content

Configuration

ThunderIDConfig is the configuration class passed to ThunderIDProvider and to ThunderIDClient.initialize().

Example

import 'package:thunderid_flutter/thunderid_flutter.dart';

final config = ThunderIDConfig(
baseUrl: 'https://localhost:8090',
clientId: '<your-client-id>',
scopes: const ['openid', 'profile', 'email'],
afterSignInUrl: 'dev.thunderid.app://callback',
afterSignOutUrl: 'dev.thunderid.app://logout',
applicationId: '<your-application-id>',
);

Parameters

ParameterTypeDefaultDescription
baseUrlStringRequired. Your ThunderID instance URL. Must use HTTPS (e.g., https://localhost:8090).
clientIdString?nullThe Client ID from your ThunderID application. Required for redirect-based authentication and token operations.
scopesList<String>['openid']OAuth 2.0 scopes to request. Include 'profile' and 'email' to receive user identity claims.
afterSignInUrlString?nullThe redirect URI to return to after sign-in. Must match an Allowed Redirect URI registered in the console.
afterSignOutUrlString?nullThe redirect URI to return to after sign-out. Must match an Allowed Post-Logout Redirect URI in the console.
signInUrlString?nullOverride the sign-in URL. Defaults to the ThunderID hosted sign-in page.
signUpUrlString?nullOverride the sign-up URL.
applicationIdString?nullThe Application ID used for app-native (embedded) sign-in flows via the Flow Execution API.
organizationHandleString?nullThe organization handle for multi-tenant deployments.
tokenValidationTokenValidationConfig?see belowControls ID token validation behavior.
preferencesThunderIDPreferences?nullUI theme and localization preferences.

TokenValidationConfig

Controls how the SDK validates ID tokens.

ThunderIDConfig(
baseUrl: 'https://localhost:8090',
clientId: '<your-client-id>',
tokenValidation: TokenValidationConfig(
validate: true,
validateIssuer: true,
clockTolerance: 30,
),
)
ParameterTypeDefaultDescription
validatebooltrueWhether to validate ID token signatures and claims. Set to false only during local development.
validateIssuerbooltrueWhether to validate the iss claim against baseUrl.
clockToleranceint0Allowed clock skew in seconds when validating token expiry.

Native Token Storage

Token storage is handled by the native platform SDKs:

PlatformStorageDescription
iOSiOS KeychainTokens persist across app restarts and are encrypted by the system.
AndroidEncryptedSharedPreferencesTokens are encrypted with AES-256-GCM backed by the Android Keystore.

Storage is always handled natively for maximum security — no Dart-level StorageAdapter to configure.

ThunderID LogoThunderID Logo

Product

DocsAPIsSDKs
© WSO2 LLC. All rights reserved.Privacy PolicyCookie Policy