Facebook sign in required

I work for Moovit, and for one of the features of our app, "Moovit Carpool", we require users to sign in specifically with Facebook.


The reason for this is to provide our users with a certain level of trust, as they are expected to share a car with someone they do not know. We display their Facebook friend count and link to their Facebook profile using a universal link.


This is done on two apps: the main app and the app for drivers.


The idea is that unlike cab companies, these are actual users already going a certain way and would like to pick up additional riders.


The question is this: I've read online that Apple sign in will be required. But in this case, we need the specific functionality that Facebook provides. How do we proceed from here?

Accepted Reply

On Jun 12, 2019, moovidator wrote:


> The question is this: I've read online that Apple sign in will be required. But in this case, we need the specific functionality that Facebook provides. How do we proceed from here?


As of Mar 4, 2020, the App Store Review Guidelines state the following—


4.8 Sign in with Apple


Apps that use a third-party or social login service (such as Facebook Login, Google Sign-In, Sign in with Twitter, Sign In with LinkedIn, Login with Amazon, or WeChat Login) to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option. A user’s primary account is the account they establish with your app for the purposes of identifying themselves, signing in, and accessing your features and associated services.


Sign in with Apple is not required if:

  • Your app exclusively uses your company’s own account setup and sign-in systems.
  • Your app is an education, enterprise, or business app that requires the user to sign in with an existing education or enterprise account.
  • Your app uses a government or industry-backed citizen identification system or electronic ID to authenticate users.
  • Your app is a client for a specific third-party service and users are required to sign in to their mail, social media, or other third-party account directly to access their content.


From your description above, your app is required to implement Sign in with Apple for user authentication. However, the user experience after authenticaton is up to you and your business needs. For example, on "Authenticating Users with Sign in with Apple", there is a section called "Preventing Duplicate Accounts", which states the following—


Prevent Duplicate Accounts


A user may already have an account in your system, but may attempt to use Sign in with Apple to log in to that account. Sharing the real email address that’s associated with the user’s Apple ID may not help, because it may not be the same email used to create the account with your system. There are a couple of ways you can mitigate this issue:

  • Implement the
    ASAuthorizationPasswordProvider
    class to detect and offer keychain credentials that the system already knows about. This works seamlessly to detect and use existing accounts, and prevents new accounts from being created using Sign in with Apple.
  • For new accounts created using Sign in with Apple, let the user know that they have created a new account, and ask if they have any existing accounts to link to.


For example, if a user runs your app and chooses to Sign in with Apple instead of Facebook Login, this should be considered a brand new account in your system. Once the user has authenticated and authorized access for your application to their Apple ID, you can optionally offer to link their new account to their (new or existing) Facebook account. However, please be aware there is no requirement for the user to link their Apple ID to their Facebook account, and many users may choose not to do so.

Replies

On Jun 12, 2019, moovidator wrote:


> The question is this: I've read online that Apple sign in will be required. But in this case, we need the specific functionality that Facebook provides. How do we proceed from here?


As of Mar 4, 2020, the App Store Review Guidelines state the following—


4.8 Sign in with Apple


Apps that use a third-party or social login service (such as Facebook Login, Google Sign-In, Sign in with Twitter, Sign In with LinkedIn, Login with Amazon, or WeChat Login) to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option. A user’s primary account is the account they establish with your app for the purposes of identifying themselves, signing in, and accessing your features and associated services.


Sign in with Apple is not required if:

  • Your app exclusively uses your company’s own account setup and sign-in systems.
  • Your app is an education, enterprise, or business app that requires the user to sign in with an existing education or enterprise account.
  • Your app uses a government or industry-backed citizen identification system or electronic ID to authenticate users.
  • Your app is a client for a specific third-party service and users are required to sign in to their mail, social media, or other third-party account directly to access their content.


From your description above, your app is required to implement Sign in with Apple for user authentication. However, the user experience after authenticaton is up to you and your business needs. For example, on "Authenticating Users with Sign in with Apple", there is a section called "Preventing Duplicate Accounts", which states the following—


Prevent Duplicate Accounts


A user may already have an account in your system, but may attempt to use Sign in with Apple to log in to that account. Sharing the real email address that’s associated with the user’s Apple ID may not help, because it may not be the same email used to create the account with your system. There are a couple of ways you can mitigate this issue:

  • Implement the
    ASAuthorizationPasswordProvider
    class to detect and offer keychain credentials that the system already knows about. This works seamlessly to detect and use existing accounts, and prevents new accounts from being created using Sign in with Apple.
  • For new accounts created using Sign in with Apple, let the user know that they have created a new account, and ask if they have any existing accounts to link to.


For example, if a user runs your app and chooses to Sign in with Apple instead of Facebook Login, this should be considered a brand new account in your system. Once the user has authenticated and authorized access for your application to their Apple ID, you can optionally offer to link their new account to their (new or existing) Facebook account. However, please be aware there is no requirement for the user to link their Apple ID to their Facebook account, and many users may choose not to do so.