mirror of
https://github.com/supabase/supabase.git
synced 2026-09-09 03:19:36 +08:00
Removes `lock: processLock` from the React Native auth quickstart. Since supabase-js 2.107.0 the client coordinates session refreshes without a lock (single-flight dedupe within the client, with concurrent refresh races resolved server-side), so the option is no longer needed; it is deprecated and will be removed in v3, and upcoming 2.x releases log a one-time deprecation warning when it is passed. The quickstart installs `@supabase/supabase-js@^2`, so anyone following it gets the lockless behavior out of the box. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Updated the React Native authentication quickstart to initialize the client without the removed locking configuration, improving compatibility with current authentication setup. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { AppState, Platform } from 'react-native'
|
|
import 'react-native-url-polyfill/auto'
|
|
import AsyncStorage from '@react-native-async-storage/async-storage'
|
|
import { createClient } from '@supabase/supabase-js'
|
|
|
|
const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL!
|
|
const supabasePublishableKey = process.env.EXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY!
|
|
|
|
export const supabase = createClient(supabaseUrl, supabasePublishableKey, {
|
|
auth: {
|
|
...(Platform.OS !== 'web' ? { storage: AsyncStorage } : {}),
|
|
autoRefreshToken: true,
|
|
persistSession: true,
|
|
detectSessionInUrl: false,
|
|
},
|
|
})
|
|
|
|
// 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.
|
|
if (Platform.OS !== 'web') {
|
|
AppState.addEventListener('change', (state) => {
|
|
if (state === 'active') {
|
|
supabase.auth.startAutoRefresh()
|
|
} else {
|
|
supabase.auth.stopAutoRefresh()
|
|
}
|
|
})
|
|
}
|