UNPKG

expo-router-auth-guard

Version:

A minimal yet powerful starter to quickly launch a mobile app using Expo and Supabase, including:

32 lines (29 loc) 1.09 kB
import AsyncStorage from "@react-native-async-storage/async-storage"; import { createClient, processLock } from "@supabase/supabase-js"; import { AppState } from "react-native"; import "react-native-url-polyfill/auto"; export const supabase = createClient( process.env.EXPO_PUBLIC_SUPABASE_URL!, process.env.EXPO_PUBLIC_SUPABASE_KEY!, { auth: { storage: AsyncStorage, autoRefreshToken: true, persistSession: true, detectSessionInUrl: false, lock: processLock, }, } ); // Tells Supabase Auth to continuously refresh the session automatically // if the app is in the foreground. When this is added, you will continue // to receive `onAuthStateChange` events with the `TOKEN_REFRESHED` or // `SIGNED_OUT` event if the user's session is terminated. This should // only be registered once. AppState.addEventListener("change", (state) => { if (state === "active") { supabase.auth.startAutoRefresh(); } else { supabase.auth.stopAutoRefresh(); } });