{CODICTS} Snippets is now available

Voxel Apple Sign In

The {CODICTS} Voxel Apple Sign In plugin adds Sign in with Apple to websites powered by the Voxel Theme. It places a native Apple Sign In button directly inside Voxel’s login and registration popups, giving your users a secure, privacy-friendly way to authenticate with their Apple ID.

Requirements

Apple Developer Account > $99/year – *Required to configure sign in with Apple

Installation & Activation

Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.

After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.

Once activated, navigate to “Apple Sign In” in the WordPress admin sidebar to configure your credentials.


Key Features

FeatureDescription
Native Button“Sign in with Apple” button injected directly into Voxel’s login and registration popups.
Popup AuthenticationUses Apple’s popup-based sign-in — no full-page redirects.
Automatic User CreationNew users are registered automatically with their Apple account details.
Existing Account LinkingIf a user with the same email already exists, their account is linked to their Apple ID.
Role ControlRestrict Apple Sign In to specific Voxel user roles.
reCAPTCHA SupportIntegrates with Voxel’s Google reCAPTCHA v3 for bot protection.
Voxel Profile CreationAutomatically creates a Voxel profile for newly registered Apple users.
Private Key SecurityYour Apple private key is masked in the admin UI and never displayed after saving.

Apple Developer Setup

Before configuring the plugin, you need to set up Sign in with Apple in your Apple Developer account. Follow these steps carefully — each value you create will be entered into the plugin settings.

Step 1: Create an App ID

1. Go to Identifiers in the Apple Developer portal.

2. Click “+” to register a new identifier. Select “App IDs” and click Continue.

3. Enter a description and a unique Bundle ID.

4. Under Capabilities, check “Sign In with Apple”.

5. Click ContinueRegister.

Step 2: Create a Services ID (This Becomes Your Client ID)

1. Go to Identifiers → Click “+”.

2. Select “Services IDs” → Continue.

3. Enter a description and an identifier (e.g., com.yourdomain.signin). This identifier is your Client ID.

4. Check “Sign In with Apple” → Click Configure.

5. In the configuration dialog:

FieldWhat to Enter
Primary App IDSelect the App ID you created in Step 1.
Domains and SubdomainsYour site’s domain without protocol (e.g., example.com). This value is shown in the plugin settings for easy copy-paste.
Return URLsYour site’s home URL (e.g., https://example.com). This value is also shown in the plugin settings.

6. Click SaveContinueRegister.

Step 3: Create a Private Key

1. Go to Keys in the Apple Developer portal.

2. Click “+” to register a new key. Enter a name and check “Sign In with Apple”.

3. Click Configure → Select your Primary App ID → Save.

4. Click ContinueRegister.

5. Download the .p8 file immediately. Apple only allows this download once — if you lose the file, you’ll need to create a new key.

6. Note the Key ID displayed on the confirmation page.

Step 4: Find Your Team ID

Go to Membership in the Apple Developer portal. Your Team ID is displayed on this page (10 characters).


Plugin Settings

Navigate to “Apple Sign In” in the WordPress admin sidebar.

Step 1: Enable the Plugin

Turn on the “Apple Sign In Enabled?” toggle.

Step 2: Enter Your Apple Credentials

SettingWhere to Find It
Client IDThe Services ID identifier from Apple Developer Setup Step 2 (e.g., com.yourdomain.signin).
Team IDFrom your Apple Developer Membership page (Step 4).
Key IDShown when you created your private key (Step 3).
Private KeyPaste the entire contents of the .p8 file you downloaded in Step 3 — including the -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- lines.

Note on private key security: After saving, the private key field will appear empty with a masked placeholder. Your key is safely stored — you only need to paste it again if you want to replace it with a new one.

Step 3: Configure Role Control (Optional)

If you want to restrict Apple Sign In to specific Voxel user roles:

1. Turn on the “Role control?” toggle.

2. Select the roles that should have access to Apple Sign In from the multi-select dropdown.

When role control is disabled, the Apple Sign In button appears for all roles (subject to Voxel’s own allow_social_login setting).

Step 4: Copy Apple Configuration Values

The settings page displays two read-only values that you need to enter in your Apple Developer Console:

FieldWhere to Enter in Apple Developer
Domains and SubdomainsServices ID → Configure → Web Authentication Configuration → Domains and Subdomains
Return URLsServices ID → Configure → Web Authentication Configuration → Return URLs

These are auto-detected from your site’s URL. Copy and paste them into the Apple Developer Console if you haven’t already done so during the Apple Developer Setup.

Step 5: Save

Click “Save Changes”. The Apple Sign In button will now appear in your Voxel login and registration popups for non-logged-in users.


How It Works

The Sign-In Flow

When a visitor clicks the “Sign in with Apple” button in the Voxel login or registration popup:

1. An Apple authentication popup opens where the user enters their Apple ID credentials.

2. Apple verifies the user and returns an authorization code to the plugin.

3. The plugin exchanges this code with Apple’s servers to securely verify the user’s identity.

4. The plugin then either logs in an existing user or creates a new account.

5. The user is redirected according to Voxel’s registration/login redirect settings.

How Users Are Matched

When someone authenticates with Apple, the plugin checks for existing accounts in this order:

PriorityCheckAction
1stApple ID already linked to a WordPress accountLog in the linked user.
2ndEmail matches an existing WordPress userLink Apple ID to that account, then log in.
3rdNo match foundCreate a new account, create a Voxel profile, then log in.

This means users who already have an account with the same email can sign in with Apple without creating a duplicate — their Apple ID is automatically linked to their existing account.

New User Registration

When a new account is created, the plugin:

1. Creates a WordPress user with the email from Apple and a random secure password.

2. Assigns the role selected in the Voxel registration popup (or the default role if none is selected).

3. Creates a Voxel profile post with the user’s name (if provided by Apple).

4. Triggers Voxel’s user registration event so welcome emails and membership workflows run normally.

5. Redirects the user to the plans page, welcome step, or custom redirect — following Voxel’s registration redirect settings.


Button Placement

The Apple Sign In button adapts automatically to your Voxel popup configuration:

Voxel ConfigurationWhere the Button Appears
Google Sign In is already enabledNext to the Google button in the social login section.
No other social login optionsIn a new “Social connect” section added to the popup.
Multiple registration rolesUpdates dynamically when the user selects a different role.

The button only appears for non-logged-in users. It respects both Voxel’s per-role allow_social_login setting and the plugin’s own role control.


Role Control

When role control is enabled, the Apple Sign In button only appears for the roles you select. Both of these conditions must be true for the button to show:

1. Voxel’s allow_social_login must be enabled for the role (configured in Voxel’s role settings).

2. The role must be in the plugin’s “Enabled Roles” list (if role control is turned on).

When a user switches between roles in the registration popup, the button automatically appears or disappears based on the rules for the newly selected role.


reCAPTCHA

If you have Google reCAPTCHA v3 configured in Voxel → Settings, the plugin automatically integrates with it. A reCAPTCHA token is sent with every Apple authentication request for bot protection. No additional configuration is needed — the plugin reads Voxel’s existing reCAPTCHA settings.


Important: Apple Name Data

Apple only provides the user’s name on the very first authorization. If the user has previously authorized your app (even on a different device), Apple will not send the name again. The plugin stores the name in user meta the first time it’s received.

If you need to receive the name again (e.g., for testing), the user must revoke your app access in Apple ID → Settings → Sign in with Apple on their Apple device, then re-authorize.


Troubleshooting

“Voxel Theme Not Detected” Error

Ensure the Voxel Theme is installed and set as the active theme. Go to Appearance → Themes to verify.

Apple Sign In Button Not Appearing

CauseSolution
Plugin not enabledTurn on the “Apple Sign In Enabled?” toggle in settings and ensure the Client ID is entered.
User is logged inThe button only shows for non-logged-in visitors. Log out to test.
Role control blockingIf role control is enabled, make sure the user’s registration role is in the “Enabled Roles” list.
Social login disabled for the roleIn Voxel’s role settings, ensure allow_social_login is enabled for the role.
JavaScript errorCheck the browser console for errors. The Apple JS SDK or the plugin’s auth script may have failed to load.

“Cannot open private key” Error

CauseSolution
Incomplete keyPaste the entire .p8 file contents, including the -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- lines.
Corrupted keyRe-download the .p8 file from Apple Developer and paste again. If you’ve lost the file, create a new key.
Missing PHP extensionEnsure the PHP openssl extension is installed and enabled on your server.

“Error while identifying with apple”

This error means the plugin couldn’t verify the authorization code with Apple’s servers. Check the following:

CauseSolution
Wrong Client IDMust match your Apple Services ID identifier exactly.
Wrong Team IDCheck your Apple Developer Membership page.
Wrong Key IDMust match the key you downloaded the .p8 file for.
Mismatched private keyThe private key must correspond to the Key ID entered.
Domain not configuredYour domain must be listed in the Apple Developer Console under your Services ID → Configure → Domains and Subdomains.
Return URL mismatchYour site’s home URL must match the Return URL in the Apple Developer Console exactly.

User Created with Wrong Role

The role assigned to new users depends on which role is selected in the Voxel registration popup when the user clicks “Sign in with Apple.” Verify the role has registration enabled in Voxel’s settings. For security, any attempt to register as an administrator is automatically downgraded to the default role.

Apple Returns No Name for the User

Apple only sends name data on the first authorization. See the Apple Name Data section above.

Duplicate User Accounts

If a user uses Apple’s “Hide My Email” feature, they receive a unique private relay email address. If they later revoke your app and re-authorize, Apple may generate a different relay address, which could create a duplicate account. The plugin checks for the Apple ID link first to prevent this, but if the link was lost, a duplicate may occur. Check for users with matching voxel:apple_auth_id meta values to identify and merge duplicates.

reCAPTCHA Errors

CauseSolution
Key mismatchEnsure the reCAPTCHA key in Voxel’s settings matches your Google reCAPTCHA console.
Wrong reCAPTCHA versionThe plugin uses reCAPTCHA v3. Make sure your site key is for v3, not v2.
Script not loadingCheck the browser console for reCAPTCHA loading errors. Ad blockers may interfere.

For further support, visit codicts.com or contact us at support@codicts.com.

CoDicts Co., Ltd. © 2021-2026. All rights reserved