biometric local authentication fingerprint index - ios

If I'm correct, you can store up to 5 finger prints in iOS. I have came across something like weak biometric, meaning the fingerprint may not necessarily be the fingerprint of a primary user, a secondary user can also set one, so we want to restrict the fingerprint indexing to a specific impression.
Is there a way to find the index or know which finger print index was used to set up biometric to login into the application?
localAuthenticationContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString) {
// index of the finger print
}

No. Every registered fingerprint is equally valid.
If a user decides to add the finger print of another user, they give them equal access to everything as long as no passcode is required.
But the majority of users register finger prints of multiple of their own fingers; depending how you grab your phone one finger print is more practical than another. I have left and right index finger and right thumb registered. If one or two of those didn't work with your app, I would be very, very, very annoyed as a user.

Related

How to setup Change Password button for user?

I'm using Firebase Authentication in my iOS app, where the users signs up and logs in with an email and password.
If a user wants to change their password at some point, how can I set that up? I'm assuming that I need to connect an existing Firebase method to a UITextField. Any help/guidance is much appreciated!
Firebase Auth has a method called updatePassword (https://firebase.google.com/docs/auth/ios/manage-users#set_a_users_password):
Auth.auth().currentUser?.updatePassword(to: password) { (error) in
// ...
}
You'd probably want at least a UITextField (possibly two if you want to have them confirm the value), check that it meets any requirements you may have about being a certain length, including certain characters, etc (you probably have the same logic in your initial signup screen) and then a UIButton that triggers the updatePassword flow. Presumably since you've already set up your initial login you're comfortable adding these items to a screen and attaching actions to them.

Can I get an identifier for a stored fingerprint?

I want to increase the level of security of my android device with implementing an auth method that requires a series of fingerprints in a specific order.
For example: pointer finer, middle finger, little finger
To make this work I would need to be able to get a unique identifier for a successfully verified fprint.
So if I would receive the result that the finger was successfully matched with fprintX I could implement such a feature.
Does that work with the biometric auth api today?

iOS get id of fingerprint

In iOS devices you can add multiple fingers to Touch ID in the menu and assign a name to each finger.
When using the fingerprint API, is it possible to get that name or some other ID of the recognized finger on the sensor?
I could not find a solution in the documentation and could imagine that there is none due to some security concept. However, in case I missed something, does someone know a possibility to get an ID of the finger on the sensor? Or does someone know a reliable source stating that this is indeed not possible?

iOS real time 2 players app

I am currently writing an iOS real time game app auto-matchmaking function. I really need help to find out how can the two players can interact. Specifically, when plaeryA pressed the find match button indicating playerA is looking for a match. It sends a query to Parse database and sees that playerB is is also looking for a match. Now, I want them to be matched. I know it is a very bad idea to use queries to frequently polling the data from the database to check if the player is matched or not. Is there anyway I can achieve it such that 'if A and B is matched, a notification/alert is sent to both players to wait for their acceptance, if A & B both accepted the match, then the two players would perform the segue to the game view controller simultaneously.
I googled online, all I got is that I have to either use Apple's Game Center or Google Play service. But both of them requires users login. I do not really want that because it would be tedious user experience. The user had to register and sign in the account of my app, and now they have to sign in either game center or google again.
Any advice/help is greatly appreciated!!

How do I use the new iOS 9.2 Touch ID feature of "sequential finger detection"

From the release notes:
Support for reusable Touch ID matches. A match from the previous phone unlock can be used by evaluateAccessControl: and evaluatePolicy:localizedReason:reply:.
To me this means that an event CAN be fired if a different finger is being used.
Abstract Example:
Login with finger 1, and again with finger 1, and again. No event.
If finger 2 is used, event raised. Subsequent usage of finger 2 no event.
I do fully agree that I won't know what finger was used, just that a different one was used. This informaton might give me enough information to act upon.
Use Case
I'm creating an app to assist in domestic violence situations where if a victim is asked to unlock the touch-ID enabled app, and a different finger is used, then the call for help is discreetly erased from the app.
Research
This is not documented on Apple's site outside of release notes, and Diffs however it is present within Xamarin's site. I followed up with the developer forums and don't want to wait for the documentation bug to be acknowledged.
In my scenario, a device is shared between an Adult and a Child, both who are enrolled in TouchID. I need to determine if a different finger is being used to protect sensitive settings.
Question
How do I use LocalisedReasonReply to determine if a different finger was used to unlock a phone? (or am I misunderstanding the new feature)
[Foundation.Export("evaluateAccessControl:operation:localizedReason:reply:")]
public virtual Void EvaluateAccessControl (SecAccessControl accessControl,LAAccessControlOperation operation, String localizedReason, [ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDActionArity2V1))]Action`2 reply)
For reference, I pasted the LAContext.h file here
"Support for reusable Touch ID matches..." mean that:-
You can re-use device unlock authentication in your app by specifying time interval in evaluateAccessControl: and evaluatePolicy:localizedReason:reply: methods.
By using LAContext Property "touchIDAuthenticationAllowableReuseDuration", You can reuse Device Unlock authentication in app, these is because at a time of device unlock you already authenticate your self. So it not required to authenticate again.(New Introduce iOS 9)
Note: Time duration must be in seconds. it default value is '0' and you specify duration up to 5 Minutes, beyond 5 minutes does not increase the accepted interval.

Resources