OpenRung
A free, privacy-first relay network that helps you reach the open internet. Open source and nonprofit-run.
The Fingerprint device intelligence platform works across web and mobile applications to identify all visitors with industry-leading accuracy — even if they’re anonymous.
SecurityTypeScript · SwiftGitHub @fingerprintjsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Official React Native client for Fingerprint. 100% accurate device identification for fraud detection.
Translation pending
Loading the full README.
Read the full README ↗Fingerprint is a device intelligence platform offering industry-leading accuracy. Fingerprint Pro React Native SDK is an easy way to integrate Fingerprint Pro into your React Native application to call the native Fingerprint Pro libraries (Android and iOS) and identify devices.
React Native 0.80 or higher is supported (New Architecture only)
Expo 54.0.0 or higher is supported
Android 7.0 (API level 24+) or higher
iOS 15.1+/tvOS 15.1+, Swift 5.9 or higher (stable releases)
Fingerprint Pro request filtering is not supported right now. Allowed and forbidden origins cannot be used.
Install the package using your favorite package manager:
NPM:
npm install @fingerprint/react-native --save
Yarn:
yarn add @fingerprint/react-native
PNPM:
pnpm add @fingerprint/react-native
ℹ️ Our SDK cannot be used in Expo Go because it requires custom native code.
NPM:
npm install @fingerprint/agent --save
Yarn:
yarn add @fingerprint/agent
PNPM:
pnpm add @fingerprint/agent
Then, use the SDK as you would with the native version.
{
"expo": {
"plugins": [
"@fingerprint/react-native"
]
}
}
npx expo prebuild --clean
For Android:
npx expo run:android
For iOS:
npx expo run:ios
cd ios && pod install
Add the repositories to your Gradle configuration file. The location for these additions depends on your project's structure and the Gradle version you're using:
You likely manage repositories in the dependencyResolutionManagement block in {rootDir}/android/settings.gradle. Add the Maven repositories in this block:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
google()
mavenCentral()
maven {
url("https://maven.fpregistry.io/releases") // Add this
}
}
}
To identify visitors, you need a Fingerprint Pro account (you can sign up for free).
Configure the SDK by wrapping your application in FingerprintProvider.
⚠️ Important: Applications should create only one client across the entire app, either through
FingerprintProvideror through the API client (start()). If you create another client, it will overwrite the underlying native client of the first one.
// src/index.js
import React from 'react';
import { AppRegistry } from 'react-native';
import { FingerprintProvider } from '@fingerprint/react-native';
import App from './App';
import { name as appName } from './app.json';
const WrappedApp = () => (
<FingerprintProvider apiKey={'your-fpjs-public-api-key'} region={'eu'}>
<App />
</FingerprintProvider>
)
AppRegistry.registerComponent(appName, () => WrappedApp);
Use the useVisitorData hook in your components to perform visitor identification and get the data.
// src/App.js
import React from 'react'
import {Button, SafeAreaView, Text, View} from 'react-native'
import {useVisitorData} from '@fingerprint/react-native'
export default function App() {
const {isLoading, isFetched, error, data, getData} = useVisitorData()
return (
<SafeAreaView>
<View style={{ margin: 8 }}>
<Button title='Reload data' onPress={() => getData().catch(() => {})} />
{isLoading ? (
<Text>Loading...</Text>
) : (
<>
<Text>VisitorId: {data?.visitor_id}</Text>
<Text>Full visitor data:</Text>
<Text>{error ? error.message : JSON.stringify(data, null, 2)}</Text>
</>
)}
</View>
</SafeAreaView>
)
}
This is the beginning of the README. Read the rest at the original. Read the full README ↗