I'm regretting not just standing up a server with a single endpoint at this point lol
Yeah that may be easiest 😭 I was hoping there was some service that allows unauthenticated requests but with arbitrary paths cause then you could write to like example.com/longrandomstringthatisasecret/key = value. But mebbe I don't understand exactly
Before SFSafariView, the only way to securely do OAuth was to launch the native Safari browser. This meant you'd get bounced out of the app, which a lot of developers didn't want to do to their users. I don't disagree that this was a bad experience, and plenty of people feel the same.
What ended up happening is people instead started embedding the WebView into their apps, in order to avoid having their users bounce out of the app and come back. The compromise in this case is that people would have to type their password to log in, because the embedded WebView doesn't share cookies with the system browser.
It took Apple a long time to roll out SFSafariView, so there are just a lot of apps out there that still have the embedded WebView.
Advantages of WebView: • Does not make the user leave the app to complete the OAuth flow
Problems with WebView: • User has no way to verify they are on the real website, so phishing attacks are undetectable • Does not share system cookies, so users have to type their password every time
Advantages of SFSafariView: • Does not make the user leave the app to complete the OAuth flow • The user can see the address bar so can verify they're on the correct website • Shares system cookies, so the user won't have to type their password if they've already signed in using the native Safari app
I should probably turn this into a proper blog post.