Privacy
The third party now has a copy of your users’ biometric data — and the long-term obligations that come with it.
Recognition is a privacy-first face recognition login plugin for WordPress.
It runs entirely in the user’s browser with TensorFlow.js and
face-api.js. No biometric data ever leaves your server —
only an encrypted 128-number descriptor is stored.
Off-the-shelf face login often means AWS Rekognition, Azure Face, or a SaaS middleman. That introduces three real risks for a WordPress site owner.
The third party now has a copy of your users’ biometric data — and the long-term obligations that come with it.
Biometric data is “special category” under GDPR. Sending it off-site requires a separate legal basis, DPIA, and processor agreements.
Per-call billing turns a free user experience into a metered line item that scales with your success.
The browser extracts a 128-number mathematical descriptor using a local
face-api.js model. Your server only ever stores that
encrypted descriptor — not a photo, not a face vector you
can’t audit, not a stream to a third party.
Everything below is in the core recognition plugin. Some capabilities are
unlocked further by the Pro license and the two add-ons.
All matching runs in the browser with bundled face-api.js weights. No external API calls, no data egress.
Each 128-number descriptor is encrypted with AES-256-CBC and stored as ciphertext. Per-record HKDF key + HMAC integrity check.
FreeEye-aspect-ratio blink check defeats photo and screen replay attacks. Configurable and built in.
FreePer-IP transient-based rate limiting, configurable lockout, and WordPress nonce verification on every endpoint.
FreePer-user export and erasure endpoints out of the box. Descriptors are removed with the user, not orphaned.
FreeStats, authentication logs, enrolled users, settings, and a license screen — all under a single sidebar.
FreeUp to 5 faces per user, each with a device name. Rename, delete, and audit per-device from the user profile.
FreeClean /wp-json/frl/v1/* routes and admin-ajax actions for headless and decoupled setups.
Longer retention, cohort breakdowns, and a deeper admin reports screen for security-sensitive sites.
ProCombine face with the QR Login add-on for a true second factor, or stack it with your existing 2FA plugin.
ProDirect line to the team behind the plugin. Reasonable SLAs, real engineers, no outsourced tier-1.
ProNetwork-activate the plugin across a WordPress multisite and receive one-click automatic updates.
ProRecognition Free gives you a complete, private, GDPR-friendly face login. Pro adds the security, analytics, and integration layer that stores, agencies, and high-traffic sites need.
The exact feature list is defined in
FRL_License_Manager::get_free_features() and
get_premium_features() in the audited 1.0.0 source.
Pro is a per-site license that unlocks the add-ons, the advanced analytics surface, multisite support, and direct support. The free plugin stays free — Pro exists for the parts that take real engineering to keep running.
Both add-ons are first-party plugins maintained by the same team. Each one requires the core Recognition plugin to be active.
Passwordless WooCommerce login, face verification at checkout, high-value order protection with risk-based rules, and trusted-device management — with HPOS and Cart/Checkout Blocks compatibility.
Sign in on devices without a webcam. A short-lived QR code appears on the desktop, the user scans it with their phone, and the same face-recognition pipeline signs the desktop in. Server-Sent Events for instant handoff, with polling as fallback.
wp-admin/plugins.php to signed-in user in four steps.No external service to set up, no accounts to create off-site.
Upload the recognition folder via Plugins → Add New → Upload Plugin and activate. Models are bundled locally.
Open Face Login → Settings. Set the match threshold, liveness, rate limit, encryption, and HTTPS requirement. Defaults are sensible.
From Users → Profile (or after a fresh registration), a user captures multiple samples. The browser averages them into a single descriptor.
The login page gains a Sign in with face button. The browser re-extracts a descriptor, the server matches it, and the user is signed in.
Every popup in the main plugin, the WooCommerce add-on, and the QR Login add-on was redesigned around the same calm, premium pattern. The face scan, the checkout verification, the QR handoff — same tokens, same motion, same trust signals.
Soft radial gradient orbs, a single dashed scan ring, and four L-shaped corner brackets. No harsh overlays, no neon.
A live Camera on pill with a pulsing dot, a one-tap Switch, and a Position your face here prompt — all inline.
Four short signals — Secure, Private, Fast, Passwordless — replace the usual block of fine print under the form.
The same tokens, motion, and spacing ship across the main plugin, the WooCommerce add-on, and the QR Login add-on.
Recognition uses a server-validated license system. The free plugin does not require a license — the Pro features and the add-ons do.
The license portal lives at license.jsswebsolutions.com. Replace this URL with your own portal if you fork or rebrand the plugin.
Only what the audited 1.0.0 plugin actually does.
No. The browser extracts a 128-number mathematical descriptor from your face. The plugin stores that descriptor (encrypted) — not a photo — and the descriptor cannot be reversed into an image.
No. Recognition runs face-api.js locally in the browser and matches against the descriptor stored on your own server. The plugin does not call AWS Rekognition, Azure Face, or any other third-party face API.
Everything you need for a production face login: enrollment, login, liveness detection, encrypted descriptors, rate limiting, the admin dashboard, the logs, the user manager, and the REST + AJAX API. The exact list is defined in FRL_License_Manager::get_free_features().
Pro unlocks the WooCommerce and QR Code Login add-ons, advanced analytics, multisite network support, automatic plugin updates, extended log retention, custom branding hooks, and priority email support.
A license key is bound to a domain. The plugin calls the validation server on activation and on a daily cron, and stores the resulting entitlement map. A grace period keeps Pro features available during transient server outages.
No. Both the WooCommerce and the QR Code Login add-ons are gated by a Pro license. The core plugin will run them but the protected endpoints return frl_premium_required until a valid license is present.
Pro features are disabled on the nextvalidation. The core plugin keeps working — enrollment, login, and the admin UI stay available. Reactivating the license restores the add-ons and Pro capabilities without a reinstall.
Yes — that is the main use case. A short-lived QR code appears on the desktop, the user scans it with their phone, and the phone’s camera runs the same face-recognition pipeline. Tokens are HMAC-SHA256 hashed before being stored.
Yes. The plugin meets WCAG 2.1 AA contrast, exposes proper ARIA, traps focus in modals, restores focus on close, and respects prefers-reduced-motion. Native alert() and confirm() were replaced with an accessible in-house modal in 1.0.0.
Free users get community support through the WordPress.org support forum. Pro users get direct priority email support from the engineering team behind the plugin.
Free to install. Privacy-first by design. Ready for production. Start with the core plugin and add the add-ons when you need them.