Skip to content

Apple

Members sign in with their Apple ID. On iOS the sheet belongs to the operating system; elsewhere it opens the browser and returns.

Apple is also the provider you may have no choice about. Offering any other social sign-in obliges you to offer this one, or the App Store rejects the build — see Choosing providers.

ConsoleApple Developer
Endpoint groupSocial Login
EmailReturned, and verified — Apple can match an existing account
Signs inInside the app on iOS, in the browser elsewhere
NeedsA paid Apple Developer account

Apple has no client secret. What other providers call a secret, Apple expects you to sign for yourself at the moment of each sign-in, from a private key. That is why this page asks for four things instead of two.

This is where most of the confusion lives, because three of them are called an ID and two of them look like a reverse domain name.

What Memberside asks forWhat it isLooks like
Services IDThe identifier for signing in on the webapp.yoursite.signin
Team IDYour developer account’s teamA1B2C3D4E5
Key IDWhich Sign in with Apple key signed the requestX9Y8Z7W6V5
Private key (.p8)The key itselfA -----BEGIN PRIVATE KEY----- block

There is a fifth identifier you do not put in the Services ID field: your app’s bundle ID, the App ID your iOS app ships under. It also looks like app.yoursite, which is exactly why it gets pasted into the wrong box.

  1. Open Certificates, Identifiers & Profiles → Identifiers.

  2. Register an App ID if your app does not have one, using your app’s bundle ID.

  3. Enable Sign in with Apple on it, then save.

  1. Register a new identifier, type Services IDs.

    Give it a description your members will see and an identifier that is not your bundle ID. app.yoursite.signin is a good convention.

  2. Enable Sign in with Apple on it, then press Configure.

  3. Choose your App ID as the primary App ID.

  4. Add your domain under Domains and Subdomainsyoursite.com, with no scheme and no path.

  5. Add the return URL under Return URLs: the address from Memberside → API Keys → Social Login → Apple, which looks like https://yoursite.com/wp-json/memberside/v1/social/callback/apple.

  6. Download the domain verification file Apple offers, but do not upload it anywhere yet — see below.

Verify your domain without uploading a file

Section titled “Verify your domain without uploading a file”

Apple checks for a file at a fixed address on your site before it will accept the domain. You do not have to put it there yourself.

  1. Open the downloaded file in a text editor and copy its contents.

  2. Paste them into the Domain verification file field under Memberside → API Keys → Social Login → Apple.

  3. Save. Your site now serves that content at the address Apple checks, which is shown beside the field with a copy button.

  4. Go back to Apple and press Verify.

A real file on disk still wins if you would rather deploy one. The field exists because most people cannot easily drop a file into a .well-known directory on managed hosting.

  1. Open Keys and register a new key.

  2. Enable Sign in with Apple, press Configure, choose your primary App ID, and save.

  3. Download the .p8 file. Apple lets you download it exactly once. There is no way to retrieve it later; a lost key is replaced, not recovered.

  4. Note the Key ID shown on the key’s page.

Under Memberside → API Keys → Social Login → Apple:

FieldValueRequired
Services IDThe Services ID, not the bundle IDYes
Team IDFrom the top right of the developer accountYes
Key IDThe key’s identifierYes
Private key (.p8)The whole file, BEGIN and END lines includedYes
iOS bundle IDYour app’s bundle ID. Only the in-app button uses itNo
Domain verification fileThe contents Apple gave youNo

Paste the private key whole. A key pasted without its -----BEGIN----- and -----END----- lines is read as a file path and reported as unreadable.

Set as a constant in wp-config.php, this field holds an absolute path to the file instead of the key itself. In the database it holds the key.

Apple returns the member’s name on the first sign-in only. Every sign-in after that carries the identifier and the email and nothing else. This is Apple’s design, not a limitation here — an account created through Apple that shows no display name was created before the name could be stored, and re-authorising does not bring it back.

Members may also choose Hide My Email, which gives you a working relay address at privaterelay.appleid.com rather than their real one. Mail sent to it reaches them until they disconnect your app.

SymptomCauseFix
“Invalid client id or web redirect url”The Services ID is your bundle IDUse a separate Services ID
The same error, with a correct Services IDThe return URL is not registered on itAdd it under Configure → Return URLs
Apple will not verify the domainThe verification file is not being servedPaste its contents into the Domain verification field, then press Verify
“invalid_client”The Team ID or Key ID does not match the keyCheck all three against the key’s page
The key reports as unreadablePasted without its BEGIN and END linesPaste the whole file
No name on new accountsApple sends the name only on the first sign-inExpected; collect it in your profile form
Sign-in works on the web, not in the appThe iOS bundle ID is emptyFill it in and run a new build