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
| Feature | Description |
|---|---|
| Native Button | “Sign in with Apple” button injected directly into Voxel’s login and registration popups. |
| Popup Authentication | Uses Apple’s popup-based sign-in — no full-page redirects. |
| Automatic User Creation | New users are registered automatically with their Apple account details. |
| Existing Account Linking | If a user with the same email already exists, their account is linked to their Apple ID. |
| Role Control | Restrict Apple Sign In to specific Voxel user roles. |
| reCAPTCHA Support | Integrates with Voxel’s Google reCAPTCHA v3 for bot protection. |
| Voxel Profile Creation | Automatically creates a Voxel profile for newly registered Apple users. |
| Private Key Security | Your 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 Continue → Register.
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:
| Field | What to Enter |
|---|---|
| Primary App ID | Select the App ID you created in Step 1. |
| Domains and Subdomains | Your site’s domain without protocol (e.g., example.com). This value is shown in the plugin settings for easy copy-paste. |
| Return URLs | Your site’s home URL (e.g., https://example.com). This value is also shown in the plugin settings. |
6. Click Save → Continue → Register.
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 Continue → Register.
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
| Setting | Where to Find It |
|---|---|
| Client ID | The Services ID identifier from Apple Developer Setup Step 2 (e.g., com.yourdomain.signin). |
| Team ID | From your Apple Developer Membership page (Step 4). |
| Key ID | Shown when you created your private key (Step 3). |
| Private Key | Paste 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:
| Field | Where to Enter in Apple Developer |
|---|---|
| Domains and Subdomains | Services ID → Configure → Web Authentication Configuration → Domains and Subdomains |
| Return URLs | Services 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:
| Priority | Check | Action |
|---|---|---|
| 1st | Apple ID already linked to a WordPress account | Log in the linked user. |
| 2nd | Email matches an existing WordPress user | Link Apple ID to that account, then log in. |
| 3rd | No match found | Create 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 Configuration | Where the Button Appears |
|---|---|
| Google Sign In is already enabled | Next to the Google button in the social login section. |
| No other social login options | In a new “Social connect” section added to the popup. |
| Multiple registration roles | Updates 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
| Cause | Solution |
|---|---|
| Plugin not enabled | Turn on the “Apple Sign In Enabled?” toggle in settings and ensure the Client ID is entered. |
| User is logged in | The button only shows for non-logged-in visitors. Log out to test. |
| Role control blocking | If role control is enabled, make sure the user’s registration role is in the “Enabled Roles” list. |
| Social login disabled for the role | In Voxel’s role settings, ensure allow_social_login is enabled for the role. |
| JavaScript error | Check 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
| Cause | Solution |
|---|---|
| Incomplete key | Paste the entire .p8 file contents, including the -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- lines. |
| Corrupted key | Re-download the .p8 file from Apple Developer and paste again. If you’ve lost the file, create a new key. |
| Missing PHP extension | Ensure 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:
| Cause | Solution |
|---|---|
| Wrong Client ID | Must match your Apple Services ID identifier exactly. |
| Wrong Team ID | Check your Apple Developer Membership page. |
| Wrong Key ID | Must match the key you downloaded the .p8 file for. |
| Mismatched private key | The private key must correspond to the Key ID entered. |
| Domain not configured | Your domain must be listed in the Apple Developer Console under your Services ID → Configure → Domains and Subdomains. |
| Return URL mismatch | Your 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
| Cause | Solution |
|---|---|
| Key mismatch | Ensure the reCAPTCHA key in Voxel’s settings matches your Google reCAPTCHA console. |
| Wrong reCAPTCHA version | The plugin uses reCAPTCHA v3. Make sure your site key is for v3, not v2. |
| Script not loading | Check the browser console for reCAPTCHA loading errors. Ad blockers may interfere. |
For further support, visit codicts.com or contact us at support@codicts.com.