The first implementation of passkeys works to create passkeys and allow for users to authenticate with them, but it lacks some UI refinement. There is no indication of progress happening, the UI remains unlocked, and there is no indication if the process is succeeding or failing.... Not a great user experience.
So to improve that I have added spinners, ui locking, errors, and alerts so that users have a better idea of what is going on when they use passkeys.
Test
Setup:
Go to the passkey DB and delete any existing passkeys you have (ping me if you need a link to the db)
On a Mac linked to the same iCloud as your testing device, go to Apple Settings > Passwords and search for any existing passkeys for simplenote at the testing url and delete them
Registration:
Log into simplenote using email/password and go to the settings view
Put your device into airplane mode and then try to register a passkey by tapping on Add Passkey Authentication
Confirm that you see a spinner for a moment and then an alert appears that you failed to register
Go out of airplane mode, Tap on Add Passkey Authentication again. Enter your email and confirm the spinner appears
When the FaceID modal pops up, dismiss it without confirming. Confirm that an alert pops up saying you failed to register. Also confirm that the UI is unlocked
Tap on Add Passkey Authentication again and this time let it scan your face. You should succeed this time. Confirm that you get a Success alert
Login:
Logout of the account you just registered a passkey for
On the login screen go to Login > Login with Passkeys and enter your email address
Put the device in airplane mode and then tap on the login with passkey button. Confirm you see an error alert
Take the device out of airplane mode, tap on the login button again. When the faceID ui appears dismiss it. Confirm you see an alert
Tap on the login button again and this time go through the whole process. Confirm you see a login spinner on the button, the ui is locked, and then when it succeeds confirm you are logged into your account
Review
(Required) Add instructions for reviewers. For example:
Only one developer and one designer are required to review these changes, but anyone can perform the review.
Release
(Required) Add a concise statement to RELEASE-NOTES.txt if the changes should be included in release notes. Include details about updating the notes in this section. For example:
RELEASE-NOTES.txt was updated in d3adb3ef with:
Added markdown support
If the changes should not be included in release notes, add a statement to this section. For example:
Fix
The first implementation of passkeys works to create passkeys and allow for users to authenticate with them, but it lacks some UI refinement. There is no indication of progress happening, the UI remains unlocked, and there is no indication if the process is succeeding or failing.... Not a great user experience.
So to improve that I have added spinners, ui locking, errors, and alerts so that users have a better idea of what is going on when they use passkeys.
Test
Setup:
Registration:
Login:
Review
(Required) Add instructions for reviewers. For example:
Release
(Required) Add a concise statement to
RELEASE-NOTES.txt
if the changes should be included in release notes. Include details about updating the notes in this section. For example:If the changes should not be included in release notes, add a statement to this section. For example: