initialize static method

Future<SupabaseAuth> initialize({
  1. LocalStorage localStorage = const HiveLocalStorage(),
  2. String? authCallbackUrlHostname,
})

Initialize the SupabaseAuth instance.

It's necessary to initialize before calling SupabaseAuth.instance

Implementation

static Future<SupabaseAuth> initialize({
  LocalStorage localStorage = const HiveLocalStorage(),
  String? authCallbackUrlHostname,
}) async {
  _instance._initialized = true;
  _instance._localStorage = localStorage;
  _instance._authCallbackUrlHostname = authCallbackUrlHostname;

  _instance._authSubscription =
      Supabase.instance.client.auth.onAuthStateChange((event, session) {
    _instance._onAuthStateChange(event, session);
    if (!_instance._listenerController.isClosed) {
      _instance._listenerController.add(event);
    }
  });

  await _instance._localStorage.initialize();

  final hasPersistedSession = await _instance._localStorage.hasAccessToken();
  if (hasPersistedSession) {
    final persistedSession = await _instance._localStorage.accessToken();
    if (persistedSession != null) {
      final response = await Supabase.instance.client.auth
          .recoverSession(persistedSession);

      if (response.error != null) {
        Supabase.instance.log(response.error!.message);
      }
    }
  }

  return _instance;
}