This SDK allows you to integrate Reclaim's in-app verification process into your React Native application.
Refer Reclaim Protocol's official documentation for React Native SDK
- A Reclaim account where you've created an app and have the app id, app secret.
- A provider id that you've added to your app in Reclaim Devtools.
- See the Reclaim Example - React Native for a complete example of how to use the SDK in a React Native application.
- See the Reclaim Example - React Native Expo for a complete example of how to use the SDK in a React Native Expo application.
Choose the appropriate installation guide based on your project setup:
For React Native projects without Expo: π Installation Guide for React Native (No Framework)
For React Native Expo projects: π Installation Guide for React Native Expo
To use Reclaim InApp Sdk in your project, follow these steps:
- Import the
@reclaimprotocol/inapp-rn-sdk
package in your project file.
import { ReclaimVerification } from '@reclaimprotocol/inapp-rn-sdk';
- Initialize the
ReclaimVerification
class to create an instance.
const reclaimVerification = new ReclaimVerification();
- Start the verification flow by providing the app id, secret and provider id.
const verificationResult = await reclaimVerification.startVerification({
appId: config.REACT_APP_RECLAIM_APP_ID ?? '',
secret: config.REACT_APP_RECLAIM_APP_SECRET ?? '',
providerId: providerId,
});
The returned result is a [ReclaimVerification.Response] object. This object contains a response that has proofs, exception, and the sessionId if the verification is successful.
If the verification ends with an exception, the exception is thrown as a [ReclaimVerification.ReclaimVerificationException] object.
Following is an example of how to handle the exception using [error.type]:
try {
// ... start verification
} catch (error) {
if (error instanceof ReclaimVerification.ReclaimVerificationException) {
switch (error.type) {
case ReclaimVerification.ExceptionType.Cancelled:
Snackbar.show({
text: 'Verification cancelled',
duration: Snackbar.LENGTH_LONG,
});
break;
case ReclaimVerification.ExceptionType.Dismissed:
Snackbar.show({
text: 'Verification dismissed',
duration: Snackbar.LENGTH_LONG,
});
break;
case ReclaimVerification.ExceptionType.SessionExpired:
Snackbar.show({
text: 'Verification session expired',
duration: Snackbar.LENGTH_LONG,
});
break;
case ReclaimVerification.ExceptionType.Failed:
default:
Snackbar.show({
text: 'Verification failed',
duration: Snackbar.LENGTH_LONG,
});
}
} else {
Snackbar.show({
text: error instanceof Error ? error.message : 'An unknown verification error occurred',
duration: Snackbar.LENGTH_LONG,
});
}
}
This error also contains sessionId
, reason
, and innerError
that can be used to get more details about the occurred error.
error.sessionId
error.reason
error.innerError
Incase you get errors which say CocoaPods could not find compatible versions for pod "ReclaimInAppSdk"
, run the following in your project's ios/
directory:
bundle exec pod update ReclaimInAppSdk
# or
pod update ReclaimInAppSdk
- An accidental breaking change may cause 0.7.0, 0.7.1, 0.7.2 to fail with build failures for Android and iOS. Update 0.7.3 fixes this issue.
- Migration steps for 0.10.0
- Migration steps for 0.9.2
- Migration steps for 0.9.1
- Migration steps for 0.9.0
- Migration steps for 0.8.3
- Migration steps for 0.7.3
- Migration steps for 0.6.0
- Migration steps for 0.3.1
- Migration steps for 0.3.0
- Migration steps for 0.2.1
// Advanced Usage: Use ReclaimVerification.setOverrides for overriding sdk
reclaimVerification.setOverrides({
appInfo: {
appName: "Overriden Example",
appImageUrl: "https://placehold.co/400x400/png"
}
// .. other overrides
})
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT