mirror of
https://github.com/supabase/supabase.git
synced 2026-05-06 08:56:46 -04:00
d8bd6b047c
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated examples and guides to use Supabase publishable (client) keys instead of anon keys for client-side usage across frameworks and platforms. * Renamed environment variable examples and .env templates to reflect publishable key naming. * Adjusted sample requests and client-init examples to send/use the publishable key via the apikey header where applicable. * Updated references from service_role to secret for server-side credential guidance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: fadymak <fady@fadymak.com>
33 lines
1.1 KiB
TypeScript
33 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, processLock } 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,
|
|
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.
|
|
if (Platform.OS !== 'web') {
|
|
AppState.addEventListener('change', (state) => {
|
|
if (state === 'active') {
|
|
supabase.auth.startAutoRefresh()
|
|
} else {
|
|
supabase.auth.stopAutoRefresh()
|
|
}
|
|
})
|
|
}
|