In the SFSafariViewController description it's written that
The two cases where you would use SFAuthenticationSession are:
Logging in to a third party's service using an authentication protocol (e.g. OAuth). This option works well for social network applications.
Providing a single sign-on (SSO) experience for applications. This option works well for enterprise companies that have many applications installed on the same device.
I wanted to implement the second scenario. I have different apps and used the SFSafariViewController to implement a SSO. The problem is that in my tests the cookies was not shared between the different apps. I logg in in one app and then when I try to log-in in another app with the same login URL, I have to write my credentials again, even if the session is still active in the first app. Is that the normal behavior? How I am supposed to implement a SSO experience if the cookies are not shared between my apps?
In iOS 11 SFSafariViewController no longer shares cookies. You should probably be looking into SFAuthenticationSession instead for OAuth SSO scenarios.