@synqid/react-native.
Native sign-in. Same hooks.
React Native + Expo SDK. OAuth handshakes through expo-web-browser, tokens in expo-secure-store, and a Gorhom bottom-sheet sign-in UI. Bare RN works too — swap to react-native-keychain for storage.
Install
pnpm add @synqid/react-native @synqid/js
pnpm add expo-secure-store expo-web-browser expo-linking @gorhom/bottom-sheetWire it up
Provider at the root under BottomSheetModalProvider; sheet rendered once anywhere in the tree.
// App.tsx
import { SynqProvider, SignInSheet } from '@synqid/react-native'
import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'
export default function App() {
return (
<BottomSheetModalProvider>
<SynqProvider
issuer="https://api.synq.id"
clientId={process.env.EXPO_PUBLIC_SYNQ_CLIENT_ID!}
redirectUri="myapp://oauth/callback"
uiTheme="dark"
colorScheme="system"
>
<Root />
<SignInSheet />
</SynqProvider>
</BottomSheetModalProvider>
)
}Mobile auth, fully wired
OAuth via secure browser tab
expo-web-browser opens the OIDC authorization URL in a native ASWebAuthenticationSession (iOS) or Custom Tab (Android). User signs in, returns via deep link, session lands.
Secure token storage
Tokens live in expo-secure-store (Keychain on iOS, EncryptedSharedPreferences on Android). For bare RN, swap to SecureStorageReactNativeKeychain.
Bottom-sheet UI
<SignInSheet /> renders a Gorhom bottom-sheet with the providers your Brand enabled. Theme via tokens; override slots with signInSheetStyles.
Wallet adapter bridge
Pass walletAdapter prop (e.g. useSolanaMwaAdapter from @synqid/solana-mobile) and the sheet renders a Continue-with-wallet button alongside socials.
Multi-tab safe
Cross-tab session sync via expo-secure-store reads. One sign-in propagates to every screen on mount.
Theme parity with web
Same five presets (dark, light, glass, monochrome, brutalist), same colorScheme="system" follow, same provider-icon overrides.
Pair it with
Common questions
Native sign-in without the platform pain.
Deep links, secure storage, sheets, refresh — all handled. You ship the auth screens, not the platform glue.
