Thunkable Docs
Build an AppDrag and Drop DocsSnap to Place DocsAcademy
Drag and Drop
Drag and Drop
  • What is Thunkable?
  • 🗺️Getting Started
    • Getting Started Guide
    • Keyboard Shortcuts
    • Undo Redo
    • Thunkable Account
      • Account Management
    • Preview and Test your App
    • Versioning
    • Data Sources
      • Google Sheets Data Source
      • Airtable Data Source
      • Webflow Data Source
      • Local Table Data Source
    • Project Collaboration
      • Organizations
    • 🎓Sample Apps & Tutorials
      • Thunkable Community Forums
      • Sample Apps
      • Video Tutorials
        • Thunkable Live App
          • How to Test and Troubleshoot with Thunkable Live App
        • Data Source Tutorials
          • Connecting to Data Sources
            • Google Sheets
            • Local Table
          • Create Data in a Thunkable Data Source
          • Read Data in a Thunkable Data Source
          • Update Data in a Thunkable Data Source
          • Delete Data in a Thunkable Data Source
        • User Auth & Management
          • Firebase
            • User Sign-Up, Sign-In, and Auth
            • User Sign Out and Password Reset
          • Google
            • User Sign-Up, Sign-In, Sign-Out, and Auth
          • Apple
            • User Sign-Up, Sign-In, Sign-Out, and Auth
        • Projects
          • How to Save Versions of Your Thunkable Project
          • How to Copy and Customize Public or Sample Thunkable Projects
        • User Interface & Design
          • Screens
            • Save and Reuse Thunkable Screens
            • Change Thunkable Screens with a Button Click
            • Create Scrollable Screens in Your Thunkable App
          • Navigators
            • How to Use the Thunkable Stack Navigator
            • How to Use Thunkable Top and Bottom Tab Navigators
            • How to Use the Thunkable Drawer Navigator
            • Combine Figma Frames with Thunkable Navigators
          • Components
            • How to Use the Visibility Property to Create Modals in Thunkable
          • Data Visualization
            • Customize a Data Viewer
          • Text
            • Implement Text Input Validation
        • Alerts & Notifications
          • Display Alert Messages in Your Thunkable App
          • How to Create Three-Button Alert Messages
        • Files
          • Cloudinary
            • Store and Access Cloudinary Files in Your Thunkable App
        • Camera
          • How to Use the Device’s Camera
          • How to Use the Device’s Video Camera
          • Use the Device’s Camera as a QR or Barcode Scanner
        • Realtime Databases
          • Firebase
            • How to Read Data in a Firebase Realtime Database
            • How to Update Data in a Firebase Realtime Database
        • Advanced Blocks
          • Connect Your Thunkable App to a Web API
        • Thunkable Academy
          • Building Your First Thunkable App
            • Getting Started with Thunkable
            • How to Design a Thunkable App
            • How to Connect a Thunkable App to a Data Source
            • How to Make A Thunkable App Interactive with Blocks
          • Thunkable No Code App Creation Basics
            • Thunkable UI Components and App Features
            • Understanding Thunkable's Drag and Drop Block Builder
            • Design, Develop, Debug, and Deploy Your App
        • Hour of Code
          • 2021 - Build an Informational App
          • 2022 - Build a Scavenger Hunt App
          • 2023 - Build a Translator and Text-to-Speech App
        • App Building
          • How to Build a Translation App in Thunkable
          • How to Create an Image Recognition App with Thunkable
          • How to Create a Text-to-Speech App in Thunkable
  • 🎨App Design
    • User Interface (UI) Components
      • Basic Components
        • Button Component
        • Label Component
        • Rich Text Component
        • Image Component
        • Text Input Component
        • Layout Component
        • Group Component
      • Data Components
        • Simple List Component
        • Data Viewer Components
          • Data Viewer List Component
          • Data Viewer Grid Component
          • Custom Data Viewer
      • Input Components
        • Switch Component
        • Slider Component
        • Checkbox Component
        • Date Input Component
        • Time Input Component
      • Media Components
        • Animation Component
        • Video Component
        • Loading Icon Component
      • Embed Components
        • Web Viewer Component
        • Map Component
        • Canvas Component
        • PDF Reader Component
        • Rating Component
      • Modules
        • Introduction
        • User Guide
      • Generative AI
    • Screens
      • Save and Reuse Screens
      • Improve Thunkable Load Time
    • Navigators
      • Top Tab Navigator
      • Bottom Tab Navigator
      • Drawer Navigator
      • Stack Navigator
    • Figma Integration
  • 🛠️Blocks
    • Thunkable Blocks Overview
    • Core Blocks
      • Control Blocks
      • Logic Blocks
      • Math Blocks
      • Text Blocks
      • Lists Blocks
      • Color Blocks
      • Device Blocks
      • Objects Blocks
      • Variables Overview
        • Connect a Firebase Realtime Database
        • Variables Blocks
      • Functions Blocks
    • App Features Blocks
      • Speech Blocks
      • Sound Blocks
      • Share Blocks
      • Camera Blocks
      • Files Blocks
      • Sign In Blocks
        • User Sign Up, Sign In, and Authentication with Firebase
        • User Sign Up, Sign In, and Authentication with Google
        • User Sign Up, Sign In, and Authentication with Apple
      • Location Blocks
      • Push Notification Blocks
      • In-App Purchase Blocks (with RevenueCat)
      • Data Sources Blocks
      • Alerts Blocks
      • Timer Blocks
      • Sensors Blocks
        • Gyroscope
        • Magnetometer
        • Accelerometer
        • Location Sensor
      • Ads by AdMob
    • Advanced Blocks
      • Web APIs Blocks
        • CORS Policy
        • 🆓No Auth APIs
          • Update Data in a Data Source
          • CRUD Operations
          • Setting Headers
        • 📊Charting APIs
          • Create a chart template
          • Charting in Thunkable
      • Bluetooth Low Energy Blocks
      • OpenAI Services ChatGPT Integration Blocks
      • "Any Component" Blocks
      • JavaScript Web Bridge
  • ⚙️Settings
    • App Settings
      • Tablet View
    • Assets
    • Cloud Variable Viewer
    • Manage your Projects
      • My Projects Page
      • Thunkable Projects
      • Duplicate Project
      • Share Your App
      • Download Your App
        • Download Your App on iOS
        • Download Your App on Android
      • Add to Home Screen
      • Managing Project Storage
      • App Data Privacy
      • Delete Project
  • 📱Publishing
    • Overview
    • Publish to the Apple App Store
      • User Guide
      • Troubleshooting
      • Review Process
      • Tracking Usage Description
    • Publish to Google Play Store
      • User Guide
      • Troubleshooting
      • Review Process
    • Publish as a Web App
      • User Guide
      • Custom Domains
      • Troubleshooting
    • Testing
      • Testing on iOS via TestFlight
      • Testing on Android
    • Troubleshooting
      • Publishing Checklist
      • Generate Screenshots
  • 🎮Gaming
    • Gaming Overview
      • Canvas Label
      • Sprites
      • Sprite Gallery
    • Gaming Blocks
      • Events
      • Motion
      • Looks
      • Direction
      • Sensing
      • Add & Remove
      • Stage
  • 🗃️Additional Resources
    • Release Notes
      • Release Notes 2024
      • Release Notes 2023
    • Troubleshooting
      • Can't Sign in to Thunkable?
      • FAQs
    • Minimum Requirements
    • Bugs and Product Feedback
    • App Services and Emulators
Powered by GitBook
On this page
  • Overview
  • Video Tutorial
  • How to Build User Sign In, Sign Out, and Authentication with Apple in Thunkable
  • Configuration in Apple Developer Account
  • Enable App ID
  • Create Service ID for Web Authentication
  • Get Profile from Apple Block
  • Get Profile from Apple Block

Was this helpful?

Export as PDF
  1. Blocks
  2. App Features Blocks
  3. Sign In Blocks

User Sign Up, Sign In, and Authentication with Apple

PreviousUser Sign Up, Sign In, and Authentication with GoogleNextLocation Blocks

Last updated 1 year ago

Was this helpful?

Overview

is a feature provided by Apple that allows users to create accounts and sign in to apps using their Apple ID. It is designed to enhance user privacy and security while simplifying the login process for both developers and users.

According to Apple’s App Store Review Guidelines, apps that use a third-party or social login service such as Google Sign-In to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option. You can read more about this requirement and acceptable exceptions here: .

Setting up user sign-in with Apple requires going back and forth between your Thunkable project and your Apple Developer account. As a result, we recommend you have a tab in your browser open for each that you can easily navigate between.

Video Tutorial

How to Build User Sign In, Sign Out, and Authentication with Apple in Thunkable

In this tutorial, we’ll show you how to use Apple to authenticate your users and allow them to sign in and sign out of your app.

Template app:

  1. Click Copy Project or Edit Project in the upper right.

Configuration in Apple Developer Account

Please note that while the images and instructions from the Apple Developer account are accurate at the time of this doc’s publishing, they may change slightly over time.

Enable App ID

To allow end users of your Thunkable-built app to sign up and sign in to your app using their already existing Apple ID:

  1. Under the Certificates, IDs & Profiles heading, select Identifiers.

  2. Click the blue + icon to add a new identifier to your account.

  3. Choose App IDs from the list of options.

  4. Click Continue.

  5. Select App.

  6. Click Continue.

  7. On the Register an App ID screen, complete or take note of the following fields:

    1. Description - This is the name you want to give your app. It appears next to the app icon when downloaded on a user's device. It must be unique to the App Store and cannot use special characters such as @, &, *, "

    2. Bundle ID - This is also unique to your app, but not visible to your app users. Apple recommends reversing your domain name to create your bundle ID, i.e. com.yourDomainName.yourAppName to avoid conflicts with other apps.

      Uploading apps to the App Store requires an Explicit Bundle ID. Wildcard bundle IDs are no longer accepted.

    3. App ID Prefix (Team ID) - Record your App ID Prefix or Team ID. This automatically created, unique identifier is linked to your Apple Developer Program membership. The same ID can be used for every app you publish.

  8. Record the values of these fields somewhere safe.

  9. Scroll down and click to enable the Sign in with Apple capability.

  10. Click Continue.

  11. Confirm that the details are correct.

  12. Click Register.

  13. The new App ID you created is included in your list of Identifiers. Click the app's name to review its Description, App ID Prefix (Team ID), or Bundle ID.

Create Service ID for Web Authentication

  1. If not already on the Identifiers screen, under the Certificates, IDs & Profiles heading, select Identifiers.

  2. Click the blue + icon to add a new identifier to your account.

  3. Choose Services IDs from the list of options.

  4. Click Continue.

  5. On the Register a Services ID screen, complete the following fields:

    1. Description - This is the name you want to give your app.

    2. Identifier - Although Apple recommends that you use the same format as the Bundle ID, this identifier must be different from the Bundle ID. We recommend adding .servicesID to the end of your Bundle ID (e.g. com.yourDomainName.yourAppName.servicesID).

  6. Copy the Services ID

  7. Click Continue.

  8. Confirm that the details are correct.

  9. Click Register.

  10. Click the newly created Services ID in your list of identifiers to edit it.

  11. Check the box for Sign in with Apple.

  12. Click Configure.

  13. Select the App ID you created from the dropdown.

  14. In the Domains and Subdomains field, enter: thunkable.site

  15. Cick Next.

  16. Confirm your web authentication configuration and then click Done.

  17. Click Continue.

  18. Click Save.

  19. Complete key generation by ensuring the "Sign in with Apple" box is checked.

  20. Within your Thunkable project, click the Settings gear icon in the left sidebar.

  21. Scroll down to the OAuth Settings section header.

  22. In the Apple Web Client ID field, paste the copied Services ID.

Get Profile from Apple Block

To access the Apple authentication block:

  1. Navigate to the Blocks tab.

  2. In the App Features section, click Sign In.

  3. A drawer of authentication blocks opens.

Get Profile from Apple Block

Outputs

The first time an app's end user signs in to an app with Apple, this block will return the following:

Output
Description

User ID

The unique identifier assigned to the authenticated user, which can be used to differentiate and identify individual users within the app. Note: This differs from the user's Apple ID for iCloud or the Apple App Store.

Given name

The user's first or given name, which represents their personal name.

Family name

The user's last name or surname, which represents their family name.

Email address

Authorization code

A temporary code granted to the app by Apple's authentication system, which the app can exchange for access tokens, allowing it to access the user's data.

Identity token

A JSON Web Token (JWT) that contains user information, such as the user's email address and a unique identifier, which can be used to verify the user's identity.

Error

An indication of a problem, issue, or unexpected condition that occurs during app operation, which may be displayed to the user or used for debugging and error handling by developers.

Subsequent sign ins or uses of this block will only return the User ID. You are responsible for storing the User ID, Authorization code, Identity token, and any other information needed to retrieve or update the user's profile information for future sign ins. The user will still be able to sign in, but their name and email address will not be updated.

If the user is not signed in and fails or rejects sign in, the get profile from Apple block returns an error. For web apps, no blocks, including errors, are returned if the user rejects sign in (as opposed to fails sign in).

Collapse Block

To collapse the block to streamline your block combinations:

  1. Right-click on the block.

  2. Select Expand Block.

Click:

Sign in to your . Don't have an Apple Developer account yet? You can learn more and sign up for one here:

In the Return URLs field, enter:

In the Apple Web Redirect URI field, input:

The user's unique email identifier. Note: Users may use Apple's feature to generate a random email address.

🛠️
https://x.thunkable.com/projectPage/6557d4f927e92ac548539106
Apple Developer account
Create Your Apple ID
https://thunkable.site
https://thunkable.site
Hide My Email
Sign In with Apple
App Store Review Guidelines - Sign in with Apple