UNPKG

react-native-credentials-manager

Version:

A React Native library that implements the Credential Manager API for Android. This library allows you to manage passwords and passkeys in your React Native applications.

67 lines (63 loc) 2.3 kB
"use strict"; import CredentialsManager from "./NativeCredentialsManager.js"; import { Platform } from 'react-native'; export function signUpWithPasskeys(requestJson, preferImmediatelyAvailableCredentials = false) { return CredentialsManager.signUpWithPasskeys(requestJson, preferImmediatelyAvailableCredentials); } export function signUpWithPassword({ username, password }) { if (Platform.OS === 'ios') { return Promise.reject(new Error('Manual password storage is not supported on iOS. Use AutoFill passwords through signIn method instead.')); } return CredentialsManager.signUpWithPassword({ password, username }); } export function signIn(options, params) { const signInParams = { passkeys: params.passkeys }; if (options.includes('google-signin')) { signInParams.googleSignIn = { serverClientId: params.googleSignIn?.serverClientId ?? '', nonce: params.googleSignIn?.nonce ?? '', autoSelectEnabled: params.googleSignIn?.autoSelectEnabled ?? true }; } // If we have Apple Sign In option on iOS, add Apple params if (Platform.OS === 'ios' && options.includes('apple-signin')) { signInParams.appleSignIn = { nonce: params.appleSignIn?.nonce ?? '', requestedScopes: params.appleSignIn?.requestedScopes ?? ['fullName', 'email'] }; } return CredentialsManager.signIn([...options], signInParams); } export function signUpWithGoogle(params) { if (Platform.OS === 'ios') { return Promise.reject(new Error('Google Sign In is only available on Android. Use signUpWithApple on iOS.')); } return CredentialsManager.signUpWithGoogle({ ...params, nonce: params.nonce ?? '', autoSelectEnabled: params.autoSelectEnabled ?? true }); } export function signUpWithApple(params = {}) { if (Platform.OS !== 'ios') { return Promise.reject(new Error('Apple Sign In is only available on iOS. Use signUpWithGoogle on Android.')); } // Call the native signUpWithApple method directly - uses Apple's Authentication Services return CredentialsManager.signUpWithApple({ nonce: params.nonce || '', requestedScopes: params.requestedScopes || ['fullName', 'email'] }); } export function signOut() { return CredentialsManager.signOut(); } // Export types //# sourceMappingURL=index.js.map