Facebook Login on iOS

#1

Hi guys, I was wondering why the Facebook Login on iOS is different then on Android. Using the FB-Login on Android is a one-click-process (if the user is already logged in on Facebook). On iOS the user must login by using his credentials, no matter if he is already logged in. This is annoying. How can I have the same experience on iOS as on Android?

#2

If you save the token you get back using AsyncStorage you can reuse that without having to prompt. You can also use ‘browser’ login method for standalone apps (explained in the docs) to have the same behavior as most other apps do.

#3

Hey man!
I had the same question from you a while back!
Apple decided it was better to log with the facebook account connected on Safari mobile (and not the facebook app)

In Expo, you have to set the behavior at native. On android, it will be the same as you have now and on iOS, it will propose to use it with facebook app or the safari one (enter information if the user isnt connected on safari mobile)

You won’t see the iOS behavior I just told as long as you’re on Expo. It only works when you build the standalone app. exp build:ios.

HOWEVER, Apple change to way to login on iOS 11.0 with facebook and twitter account (Check here to read more)
Basically, the native behavior is the same as the web one but not in a Dialog, but in safari.
I spoke with someone from Expo, it will be fixed in Expo SDK 22.0.0

If you find another solution to fix, I’m all ear!

#4

I’m running SDK 22.0.0 and i’m still getting the ‘web’ behavior even though i specified ‘native’ in the login process? Am i missing something or is this the intended behavior?

#5

If you’re trying it with a standalone app, it is not the intended behavior. If you’re trying with Expo, then it is yest

#6

i have tried browser and system behaviours of logInWithReadPermissionsAsync, but I always get the default web behaviour tha does not get appropriately get user’s saved credencials