recoverSupabaseSession method

Future<bool> recoverSupabaseSession()

Recover/refresh session if it's available e.g. called on a Splash screen when app starts.

Implementation

Future<bool> recoverSupabaseSession() async {
  final bool exist =
      await SupabaseAuth.instance.localStorage.hasAccessToken();
  if (!exist) {
    onUnauthenticated();
    return false;
  }

  final String? jsonStr =
      await SupabaseAuth.instance.localStorage.accessToken();
  if (jsonStr == null) {
    onUnauthenticated();
    return false;
  }

  final response =
      await Supabase.instance.client.auth.recoverSession(jsonStr);
  if (response.error != null) {
    SupabaseAuth.instance.localStorage.removePersistedSession();
    onUnauthenticated();
    return false;
  } else {
    onAuthenticated(response.data!);
    return true;
  }
}