This PR adds support for FIDO2 authentication with devices that don’t have a PIN code set.
This depends on a newer release of the LibFido2Swift library.
At the time of writing LibFido2Swift only supports pin-less assertation on the main branch. As such this PR will have to wait until @kinoroy creates a new release on his side.
The updated version has now been released and the PR has been updated to reflect this.
Some further updates were made on the LibFido2Swift library to make PIN-less assertation easier. This PR was updated in turn to improve the UX of the PIN-less authentication flow.
The flow now is that when a user tries to log in, if the request needs 2FA - where the second factor is a security key we check:
If a device is attached and PIN is not required. We then request the assertation straight away, at which point that flow presents the .securityKeyTouchToConfirm sheet.
If a device is attached but needs a PIN. Then the .twoFactor sheet is displayed like before.
If no device is attached. We then present the .twoFactor sheet.
If at this point the user inserts their security key but they do not have a PIN set, a button the two factor sheet will allow them to proceed without a PIN (as seen in the screenshot below).
The button for submitting without a pin was added to be inline with the other buttons on the PIN screen.
Ohh and I addressed a couple of issue that were being caught by the "Run Time Issue" breakpoint. Namely assigning the authError outside of the main thread.
This PR adds support for FIDO2 authentication with devices that don’t have a PIN code set.
This depends on a newer release of the
LibFido2Swift
library.At the time of writingLibFido2Swift
only supports pin-less assertation on the main branch. As such this PR will have to wait until @kinoroy creates a new release on his side.The updated version has now been released and the PR has been updated to reflect this.Some further updates were made on the
LibFido2Swift
library to make PIN-less assertation easier. This PR was updated in turn to improve the UX of the PIN-less authentication flow.The flow now is that when a user tries to log in, if the request needs 2FA - where the second factor is a security key we check:
.securityKeyTouchToConfirm
sheet..twoFactor
sheet is displayed like before..twoFactor
sheet.The button for submitting without a pin was added to be inline with the other buttons on the PIN screen.
Ohh and I addressed a couple of issue that were being caught by the "Run Time Issue" breakpoint. Namely assigning the
authError
outside of the main thread.