Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

This module integrates Apple Sign-In with Drupal, allowing users to log in using their Apple accounts. It provides a dedicated login path and integrates with the Social Auth login block, requiring the Social API and Social Auth modules.

Social Auth Apple is a Apple Sign-in authentication integration for Drupal. It is
based on the Social Auth and Social API projects

It adds to the site:

  • A new url: /user/login/apple.
  • A settings form at /admin/config/social-api/social-auth/apple.
  • A Apple logo in the Social Auth Login block.

REQUIREMENTS

This module requires the following modules:

* Social Auth (https://drupal.org/project/social_auth)
* Social API (https://drupal.org/project/social_api)

APPLE ACCOUNT / CREDENTIALS

The hardest part of the installation is to setup your credentials within the Apple Developer Account.
You can follow this guide:
https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple

INSTALLATION

MAP FIRSTNAME / LASTNAME TO USERPROFILE

The name is only fetched the absolute first time the user logs in with the Apple ID. If you want to reset the Apple Sign-In, you have to login with your Apple ID on https://appleid.apple.com/ and remove your app from the allowed list. Also delete any related existing users in your Drupal database.

You can map the name implementing an EventSubscriber in a custom module.

Code example

<?php

namespace Drupal\my_module\EventSubscriber;

use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\social_auth\Event\SocialAuthEvents;
use Drupal\social_auth\Event\UserFieldsEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Sets the domain context for an http request.
 */
class MyModuleSubscriber implements EventSubscriberInterface {

  use StringTranslationTrait;

  public function onSocialUserFields(UserFieldsEvent $event) {
    $social_user = $event->getSocialAuthUser();
    $fields = $event->getUserFields();

    if ($event->getPluginId() == 'social_auth_apple') {

      $parts = explode('@', $social_user->getEmail());
      $additional_data = $social_user->getAdditionalData();

      $fields['field_firstname'] = 'Apple ' . $this->t('Given name') . ' ' . $parts[0];
      if (!empty($additional_data['name']['firstName'])) {
        $fields['field_firstname'] = $additional_data['name']['firstName'];
      }

      $fields['field_name'] = 'Apple ' . $this->t('Last name') . ' ' . $parts[0];
      if (!empty($additional_data['name']['lastName'])) {
        $fields['field_name'] = $additional_data['name']['lastName'];
      }

      $event->setUserFields($fields);
    }

  }

  public static function getSubscribedEvents() {
    // This needs to fire very early in the stack, before accounts are cached.
    $events[SocialAuthEvents::USER_FIELDS][] = ['onSocialUserFields', 0];
    return $events;
  }

}

Depends on

Dependencies of the latest stable release

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
3
Tracked since
May 2025
Latest release
5 months ago
Releases (12 mo)
1 ▼ from 2
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
2.0.2 Stable 9–11 Mar 2, 2026
1.1.1 Stable 8–11 May 9, 2025
2.0.1 Stable 9–11 May 9, 2025