initialize static method
Initialize auth manager with secure storage callbacks
Implementation
static Future<void> initialize({
required SDKEnvironment environment,
String? baseURL,
}) async {
if (_isInitialized) return;
_environment = environment;
_baseURL = baseURL;
try {
final lib = PlatformLoader.loadCommons();
// Allocate and set up secure storage callbacks
_storagePtr = calloc<RacSecureStorageCallbacksStruct>();
_storagePtr!.ref.store =
Pointer.fromFunction<RacSecureStoreCallbackNative>(
_secureStoreCallback, _exceptionalReturnInt);
_storagePtr!.ref.retrieve =
Pointer.fromFunction<RacSecureRetrieveCallbackNative>(
_secureRetrieveCallback, _exceptionalReturnInt);
_storagePtr!.ref.deleteKey =
Pointer.fromFunction<RacSecureDeleteCallbackNative>(
_secureDeleteCallback, _exceptionalReturnInt);
_storagePtr!.ref.context = nullptr;
// Initialize auth with storage
final initAuth = lib.lookupFunction<
Void Function(Pointer<RacSecureStorageCallbacksStruct>),
void Function(
Pointer<RacSecureStorageCallbacksStruct>)>('rac_auth_init');
initAuth(_storagePtr!);
// Load stored tokens
await instance._loadStoredTokens();
_isInitialized = true;
_logger.debug('Auth manager initialized');
} catch (e, stack) {
_logger.debug('Auth initialization error: $e', metadata: {
'stack': stack.toString(),
});
_isInitialized = true; // Avoid retry loops
}
}