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
JavaScript
;
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