TL;DR
I'm trying to understand what is the difference between user tapping "Go" button on software keyboard and tapping "Sign In" button rendered on authentication web page when using SFSafariViewController
to authenticate user via Azure or any other OAuth provider.
Description
- We're using various OAuth providers (Azure, Keycloack to name a few) to authenticate users to our native iOS application.
- We present to a user, browser instance (SFSafariViewController) with login page
- This page contains username, password fields and a button to sign in
- When user is entering the password - he/she can either use
Log In
button on the page orGo
button on the iOS software keyboard - In both cases login procedure will be triggered and user will be redirected back to proper URL
- However, if user taps
Go
button on the software keyboard, application is not being notified about redirect (universal link logic doesn't work) and redirect URL page is being rendered inside SafariViewController - It happens in various OAuth providers and can be reproduced only on iOS (when using Android software keyboard button, universal link behaves fine)
We're handling this situation right now by creating special redirect page, which contains special link to a user to tap. Something like "Tap here if you're not automatically redirected back to the application". But I was wondering if there is better solution to this and what is the difference from the OS/Browser perspective between user tapping software keyboard button and HTML page element.