File tree Expand file tree Collapse file tree 3 files changed +14
-8
lines changed
authgear-capacitor/ios/Plugin
authgear-react-native/ios Expand file tree Collapse file tree 3 files changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -148,9 +148,11 @@ public class AuthgearPlugin: CAPPlugin {
148148 }
149149
150150 @objc func checkBiometricSupported( _ call: CAPPluginCall ) {
151+ let ios = call. getObject ( " ios " ) !
152+ let policyString = ios [ " policy " ] as! String
151153 DispatchQueue . main. async {
152154 do {
153- try self . impl. checkBiometricSupported ( )
155+ try self . impl. checkBiometricSupported ( policyString : policyString )
154156 call. resolve ( )
155157 } catch {
156158 error. reject ( call)
@@ -163,13 +165,13 @@ public class AuthgearPlugin: CAPPlugin {
163165 let payload = call. getObject ( " payload " ) !
164166 let ios = call. getObject ( " ios " ) !
165167 let constraint = ios [ " constraint " ] as! String
168+ let policyString = ios [ " policy " ] as! String
166169 let localizedReason = ios [ " localizedReason " ] as! String
167170 let tag = " com.authgear.keys.biometric. \( kid) "
168- let policy = LAPolicy . deviceOwnerAuthenticationWithBiometrics
169171
170172 DispatchQueue . main. async {
171173 self . impl. createBiometricPrivateKey (
172- policy : policy ,
174+ policyString : policyString ,
173175 localizedReason: localizedReason,
174176 constraint: constraint,
175177 kid: kid,
Original file line number Diff line number Diff line change @@ -282,9 +282,9 @@ import Capacitor
282282 }
283283 }
284284
285- @objc func checkBiometricSupported( ) throws {
285+ @objc func checkBiometricSupported( policyString : String ) throws {
286286 if #available( iOS 11 . 3 , * ) {
287- let policy = LAPolicy . deviceOwnerAuthenticationWithBiometrics
287+ let policy = LAPolicy . from ( string : policyString ) !
288288 let laContext = self . makeLAContext ( policy: policy)
289289 var error : NSError ?
290290 laContext. canEvaluatePolicy ( policy, error: & error)
@@ -297,14 +297,15 @@ import Capacitor
297297 }
298298
299299 @objc func createBiometricPrivateKey(
300- policy : LAPolicy ,
300+ policyString : String ,
301301 localizedReason: String ,
302302 constraint: String ,
303303 kid: String ,
304304 tag: String ,
305305 payload: [ String : Any ] ,
306306 completion: @escaping ( String ? , Error ? ) -> Void
307307 ) {
308+ let policy = LAPolicy . from ( string: policyString) !
308309 let ctx = makeLAContext ( policy: policy)
309310 ctx. evaluatePolicy ( policy, localizedReason: localizedReason) { ok, error in
310311 if let error = error {
Original file line number Diff line number Diff line change @@ -395,7 +395,9 @@ + (BOOL)application:(UIApplication *)application
395395RCT_EXPORT_METHOD (checkBiometricSupported:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
396396{
397397 if (@available (iOS 11.3 , *)) {
398- LAPolicy policy = LAPolicyDeviceOwnerAuthenticationWithBiometrics;
398+ NSDictionary *iosDict = options[@" ios" ];
399+ NSString *policyString = iosDict[@" policy" ];
400+ LAPolicy policy = [self laPolicyFromString: policyString];
399401 LAContext *context = [self laContextFromPolicy: policy];
400402 NSError *error = NULL ;
401403 [context canEvaluatePolicy: policy error: &error];
@@ -435,8 +437,9 @@ + (BOOL)application:(UIApplication *)application
435437 NSDictionary *iosDict = options[@" ios" ];
436438 NSString *constraint = iosDict[@" constraint" ];
437439 NSString *localizedReason = iosDict[@" localizedReason" ];
440+ NSString *policyString = iosDict[@" policy" ];
438441 NSString *tag = [NSString stringWithFormat: @" com.authgear.keys.biometric.%@ " , kid];
439- LAPolicy policy = LAPolicyDeviceOwnerAuthenticationWithBiometrics ;
442+ LAPolicy policy = [ self laPolicyFromString: policyString] ;
440443 LAContext *context = [self laContextFromPolicy: policy];
441444
442445 [context evaluatePolicy: policy localizedReason: localizedReason reply: ^(BOOL success, NSError * _Nullable laError) {
You can’t perform that action at this time.
0 commit comments