diff --git a/ios/AuthsignalPushModule.m b/ios/AuthsignalPushModule.m index 290de69..362f6e7 100644 --- a/ios/AuthsignalPushModule.m +++ b/ios/AuthsignalPushModule.m @@ -12,6 +12,7 @@ @interface RCT_EXTERN_MODULE(AuthsignalPushModule, NSObject) rejecter:(RCTPromiseRejectBlock)reject) RCT_EXTERN_METHOD(addCredential:(NSString)token + withRequireUserAuthentication:(BOOL)requireUserAuthentication withKeychainAccess:(NSString)keychainAccess resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) diff --git a/ios/AuthsignalPushModule.swift b/ios/AuthsignalPushModule.swift index b4ecc95..7fb674e 100644 --- a/ios/AuthsignalPushModule.swift +++ b/ios/AuthsignalPushModule.swift @@ -51,6 +51,7 @@ class AuthsignalPushModule: NSObject { @objc func addCredential( _ token: NSString?, + withRequireUserAuthentication requireUserAuthentication: Bool, withKeychainAccess keychainAccess: NSString, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock @@ -61,11 +62,15 @@ class AuthsignalPushModule: NSObject { } let tokenStr = token as String? - + let requireAuthentication = requireUserAuthentication as Bool let keychainAccess = getKeychainAccess(value: keychainAccess as String?) Task.init { - let response = await authsignal.addCredential(token: tokenStr, keychainAccess: keychainAccess) + let response = await authsignal.addCredential( + token: tokenStr, + keychainAccess: keychainAccess, + userPresenceRequired: requireAuthentication + ) if let error = response.error { reject(response.errorCode ?? "unexpected_error", error, nil) diff --git a/package.json b/package.json index eca8619..f2d8533 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-authsignal", - "version": "1.3.2", + "version": "1.3.3", "description": "The official Authsignal React Native library.", "main": "lib/commonjs/index", "module": "lib/module/index", diff --git a/react-native-authsignal.podspec b/react-native-authsignal.podspec index ec02300..389b0c1 100644 --- a/react-native-authsignal.podspec +++ b/react-native-authsignal.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency 'Authsignal', '1.2.0' + s.dependency 'Authsignal', '1.2.1' # Don't install the dependencies when we run `pod install` in the old architecture. if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then diff --git a/src/push.ts b/src/push.ts index e04b7a8..73e89d2 100644 --- a/src/push.ts +++ b/src/push.ts @@ -28,6 +28,7 @@ const AuthsignalPushModule = NativeModules.AuthsignalPushModule interface AddCredentialInput { token?: string; + requireUserAuthentication?: boolean; keychainAccess?: KeychainAccess; } @@ -66,6 +67,7 @@ export class AuthsignalPush { async addCredential({ token, + requireUserAuthentication = false, keychainAccess, }: AddCredentialInput = {}): Promise> { await this.ensureModuleIsInitialized(); @@ -73,7 +75,11 @@ export class AuthsignalPush { try { const data = Platform.OS === 'ios' - ? await AuthsignalPushModule.addCredential(token, keychainAccess) + ? await AuthsignalPushModule.addCredential( + token, + requireUserAuthentication, + keychainAccess + ) : await AuthsignalPushModule.addCredential(token); return { data };