Bird
Raised Fist0
React Nativemobile~5 mins

Authentication (email, Google, Apple) in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of email authentication in a mobile app?
Email authentication verifies a user's identity by checking their email and password. It helps keep the app secure by allowing only registered users to access their accounts.
Click to reveal answer
beginner
How does Google Sign-In simplify user authentication?
Google Sign-In lets users log in using their existing Google account. This saves time because users don't need to create a new password, and it improves security by using Google's trusted system.
Click to reveal answer
intermediate
What is a key benefit of Apple Sign-In for iOS apps?
Apple Sign-In provides a privacy-focused way for users to log in. It lets users hide their email address and uses Face ID or Touch ID for secure authentication.
Click to reveal answer
intermediate
Why should apps offer multiple authentication methods like email, Google, and Apple?
Offering multiple methods lets users choose what is easiest and safest for them. It improves user experience and can increase app sign-ups by providing flexibility.
Click to reveal answer
advanced
What is OAuth and how is it related to Google and Apple authentication?
OAuth is a secure way to let apps access user info from other services without sharing passwords. Google and Apple use OAuth to let users sign in safely with their accounts.
Click to reveal answer
Which authentication method allows users to log in without creating a new password?
AEmail and password
BManual username entry
CGoogle Sign-In
DSMS code only
What feature does Apple Sign-In provide to protect user privacy?
ASharing user location
BHiding user email address
CSaving passwords in plain text
DAllowing anonymous login
What is the main role of OAuth in authentication?
AAllowing apps to access user info without passwords
BEncrypting user passwords
CCreating user accounts automatically
DBlocking unauthorized users
Why is offering multiple authentication options beneficial?
AIt improves user choice and convenience
BIt increases app complexity unnecessarily
CIt confuses users
DIt reduces app security
Which of these is NOT a common authentication method in mobile apps?
AEmail and password
BGoogle Sign-In
CApple Sign-In
DPhysical mail verification
Explain how Google Sign-In works and why it is useful in mobile apps.
Think about how using an existing Google account helps users log in faster and safer.
You got /4 concepts.
    Describe the benefits of offering Apple Sign-In alongside email authentication in an iOS app.
    Consider how Apple Sign-In protects user data and makes login easier on Apple devices.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which method is commonly used to authenticate users with their email and password in React Native apps?
      easy
      A. Using Firebase Authentication's signInWithEmailAndPassword method
      B. Directly storing passwords in AsyncStorage
      C. Using Google Sign-In without email
      D. Using Apple Sign-In only

      Solution

      1. Step 1: Understand email/password authentication

        Email/password authentication requires a secure backend or service like Firebase to verify credentials.
      2. Step 2: Identify the correct method in React Native

        Firebase provides signInWithEmailAndPassword to handle this securely and easily.
      3. Final Answer:

        Using Firebase Authentication's signInWithEmailAndPassword method -> Option A
      4. Quick Check:

        Email/password auth = Firebase signInWithEmailAndPassword [OK]
      Hint: Email login usually uses Firebase's signInWithEmailAndPassword [OK]
      Common Mistakes:
      • Storing passwords locally in AsyncStorage
      • Confusing social sign-in with email/password
      • Using Apple Sign-In for email login only
      2. Which of the following is the correct syntax to import Google Sign-In in a React Native app?
      easy
      A. import { GoogleSignin } from '@react-native-google-signin/google-signin';
      B. import GoogleSignIn from 'react-native-google-signin';
      C. import Google from 'google-signin-react-native';
      D. import { GoogleSignIn } from 'react-native-google-auth';

      Solution

      1. Step 1: Recall the official Google Sign-In package

        The official package for React Native Google Sign-In is '@react-native-google-signin/google-signin'.
      2. Step 2: Check the correct import syntax

        The correct import uses named import { GoogleSignin } from that package.
      3. Final Answer:

        import { GoogleSignin } from '@react-native-google-signin/google-signin'; -> Option A
      4. Quick Check:

        Google Sign-In import = import { GoogleSignin } from '@react-native-google-signin/google-signin'; [OK]
      Hint: Official Google Sign-In uses named import from '@react-native-google-signin/google-signin' [OK]
      Common Mistakes:
      • Using default import instead of named import
      • Wrong package names
      • Confusing Google Sign-In with Apple Sign-In imports
      3. What will be the output of this React Native code snippet when a user successfully signs in with Google?
      async function onGoogleSignIn() {
        try {
          await GoogleSignin.hasPlayServices();
          const userInfo = await GoogleSignin.signIn();
          console.log(userInfo.user.email);
        } catch (error) {
          console.log('Error:', error.message);
        }
      }
      medium
      A. Throws a syntax error due to missing await
      B. Does nothing because signIn is not awaited
      C. Logs 'Error: user cancelled the login flow' always
      D. Logs the signed-in user's email to the console

      Solution

      1. Step 1: Analyze the async function flow

        The function awaits Google Play services check and then awaits signIn, which returns user info.
      2. Step 2: Understand console.log output

        On success, userInfo.user.email is logged, so the user's email appears in the console.
      3. Final Answer:

        Logs the signed-in user's email to the console -> Option D
      4. Quick Check:

        Successful Google sign-in logs email [OK]
      Hint: Await signIn returns user info; console logs email [OK]
      Common Mistakes:
      • Forgetting to await signIn causing unresolved promise
      • Assuming error always occurs
      • Confusing userInfo structure
      4. You wrote this code to sign in with Apple but get an error: "Apple Authentication is not configured properly." What is the likely cause?
      import { appleAuth } from '@invertase/react-native-apple-authentication';
      
      async function onAppleSignIn() {
        try {
          const appleAuthRequestResponse = await appleAuth.performRequest({
            requestedOperation: appleAuth.Operation.LOGIN,
            requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME],
          });
          console.log(appleAuthRequestResponse);
        } catch (error) {
          console.error(error);
        }
      }
      medium
      A. Missing await keyword before performRequest
      B. Apple Sign-In is not enabled in the Apple Developer portal for the app
      C. requestedScopes array is empty
      D. The import statement is incorrect

      Solution

      1. Step 1: Understand Apple Sign-In setup requirements

        Apple Sign-In requires enabling the capability in Apple Developer portal for your app's bundle ID.
      2. Step 2: Identify the cause of configuration error

        The error indicates the app is not configured properly, usually meaning the capability is missing or misconfigured.
      3. Final Answer:

        Apple Sign-In is not enabled in the Apple Developer portal for the app -> Option B
      4. Quick Check:

        Configuration error = missing Apple Sign-In capability [OK]
      Hint: Check Apple Developer portal for Sign-In capability [OK]
      Common Mistakes:
      • Assuming code import is wrong
      • Ignoring Apple Developer portal setup
      • Forgetting to add requested scopes
      5. You want to implement a unified sign-in button that lets users choose between Email, Google, or Apple sign-in in React Native. Which approach best handles this scenario?
      hard
      A. Use a single button that calls all sign-in methods simultaneously
      B. Use only Google Sign-In and ignore others for simplicity
      C. Create separate buttons for each method and handle their success/failure states individually
      D. Store user passwords locally to switch between methods

      Solution

      1. Step 1: Understand user experience for multiple sign-in options

        Users expect clear choices; separate buttons let them pick Email, Google, or Apple sign-in explicitly.
      2. Step 2: Manage success and failure states separately

        Each method has different flows and error handling, so handling them individually is best practice.
      3. Final Answer:

        Create separate buttons for each method and handle their success/failure states individually -> Option C
      4. Quick Check:

        Separate buttons + individual handling = best practice [OK]
      Hint: Separate buttons for each sign-in method handle flows cleanly [OK]
      Common Mistakes:
      • Trying to call all sign-ins at once
      • Ignoring Apple or Email sign-in options
      • Storing passwords insecurely on device
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard