Store social login — Google and Facebook free, Apple deferred¶
Decided 2026-09-24. Task embeddedera-store #266. Providers were asked for as "Google, Apple and Facebook customer login"; this records which of the three the store will actually ship and why one of them is not shipping yet.
The decision¶
Nextend Social Login, free tier, Google and Facebook only. Apple is deferred.
Apple is the only one of the three that cannot be done for free, and it is not one cost but two: the plugin's Apple provider is Pro-only at €49 one-time, and Sign in with Apple requires an Apple Developer Program membership at $99/yr, renewed forever. Hard Rule 2 says a paid option needs a reason the free ones fall short, and here the free ones do not fall short — Google and Facebook cover the customers this store has. Revisit when a customer actually asks for Apple, or when something else already requires the Developer Program.
What was checked¶
| Plugin | Apple | Installs | Verdict | ||
|---|---|---|---|---|---|
| Nextend Social Login | free | free | Pro, €49 one-time | 200,000+ | chosen — v3.1.26, mature, transparent pricing |
| miniOrange Social Login | free | free | paid, not free | 10,000+ | v7.9.1, actively maintained; no advantage over Nextend for our three |
| OpenID Connect Generic | custom | custom | custom | — | protocol-level, no preset buttons; more setup than the job needs |
| WooCommerce Social Login (official) | yes | yes | yes | — | avoid, paid ~$95/yr and a documented auth-bypass history |
| Super Socializer | yes | yes | ? | — | avoid, pulled from the WordPress.org directory |
A first research pass claimed miniOrange gave Apple away free, which would have changed the answer. It does not — checked directly against the plugin page, Apple is in its paid plans. The cheaper-looking option was cheaper only in the summary.
Unresolved and deliberately not chased: whether Apple additionally requires a published App Store app for the web flow. Sources disagree and it does not matter until the $99/yr is worth paying.
The part that is not about plugins¶
Never auto-link a social profile to an existing account on a matching email. The default in this class of plugin is: social profile's email equals an existing user's email, therefore log in as that user. Anyone who can get a provider to emit an address they do not own then owns the account behind it — order history, saved addresses, payment methods. This is exactly the shape of the official WooCommerce plugin's reported bypass.
Required configuration, whichever plugin ships:
- Email already has an account → do not link. Ask for the password first, then link.
- Only consider auto-link at all when the provider asserts
email_verified— Google and Facebook do. Apple does not, which is a second reason to leave it out. - Verify the chosen plugin's actual behaviour on the sandbox before go-live. If the documentation is silent, assume it auto-links and configure against it.
Carts need nothing: WooCommerce's persistent cart lives in user meta and survives the
OAuth round trip. Send the customer where you want them afterwards with the
woocommerce_login_redirect filter.
Acceptance before this ships¶
- Sandbox only, per sandbox-workflow. Nothing installed on production first.
- Proven: signing in with a Google account whose email matches an existing customer demands the password and does not hand over the account.
- Google and Facebook app credentials stored 0600 under
~/.config/, never in the vault — hard rule 4 in~/.claude/CLAUDE.md.
Log¶
- 2026-09-24 — Decided. Free tier, two providers. Apple deferred on cost, not capability.