Know when the same person signs up again, even with different account details.
300 sign-ins a month, free for 6 months. One line of code to install.
One person, one account.
Stop users hiding behind new accounts.
Privacy without compromising security.
Detect when the same person signs up again.
Prevent users gaining an advantage through multiple identities.
Block, flag or allow repeat accounts. You decide.
Confirm the person without storing face images or reusable biometric data.
Reduce passwords, resets, SMS codes and login friction.
Free tiers, trials, promotions, communities, competitions, marketplaces and anywhere multiple accounts create an unfair advantage.
Shopify and Wix run their own login and only open it up on their enterprise plans, so face sign-in cannot replace it there yet. More on that below.
No password to remember. No email to hunt for. No SMS code to type. Face Sign-In is entirely optional: enable it for extra security and even faster access, or simply use Email SSO.
Your own button, on your own page, styled however you like.
One glance. The image is turned into a key and immediately discarded.
Straight back to what they came for. No reset email, no support ticket, no lost sale.
Then the code on your site never has to change again.
One tag in your page, wherever your sign-in button lives. Works with WordPress and WooCommerce, no-code platforms like Lovable and Webflow, custom sites, and anything else that lets you edit HTML.
Face on its own, or face plus a name, a phone number, or a password. Every field you drop is a person who finishes signing up. Change your mind later without touching your site.
Every successful sign-in is another customer who did not abandon your site. Watch them arrive in your dashboard, and send them into your own system too, if you have one.
Choose what you collect at sign-up and what users need to prove when they return. Add Face Sign-In when you need to know the person behind the account is the same person. Everyone signs in with their email address, always, because that is how we know which account they are. Everything else is a setting, not code: tick the face on and it is one look and you are in, tick it off and a code to that address does the job instead.
Asked once, the first time someone arrives.
Their email address, plus whatever else you tick.
Everything here is on one screen, filled in once. Only codes come afterwards, because they cannot be sent until we know where to send them. Ticking something here ticks the matching field on sign-up and holds it there while you need it.
A script tag for the front end, one signed check for the back end. The widget handles the camera, the states and the retries. Your server does a single HTTP call to confirm what happened.
<!-- anywhere before </body> --> <script src="https://www.facelogon.com/facelogon_widget_v1.js" data-app="fl_live_8x2kq4m"></script> // What you ask for lives in your dashboard, not here, // so nobody can edit this page to ask for less. <!-- your own button, styled however you like --> <button data-facelogon="signin"> Sign in with your face </button>
// Fires in the browser. Use it for your interface only. FaceLogon.on('signedin', function (e) { // e.code, short-lived, send this to your server fetch('/session', { method: 'POST', body: JSON.stringify({ code: e.code }) }); }); FaceLogon.on('failed', function (e) { // e.reason: no_match | liveness | camera_denied | timeout showMessage(e.reason); });
// On your server. This is the only result you should trust. const r = await fetch('https://api.facelogon.com/v1/verify', { method: 'POST', headers: { Authorization: 'Bearer ' + FACELOGON_SECRET }, body: JSON.stringify({ code }) }); const user = await r.json(); // { user_id: "flu_9f2a…", is_new: false, // factors_proven: ["face", "password"], // signed_in_at: "2026-07-31T…" } // Check this against what YOU require for the action. if (!user.factors_proven.includes('password')) return deny(); startSession(user.user_id);
// Optional. Paste any URL in your dashboard: // your server, Zapier, Make, or a Google Sheet. POST /your-endpoint FaceLogon-Signature: t=1785…,v1=… { "type": "user.signedin", "user_id": "flu_9f2a…", "is_new": false, "created": 1785312000 }
A few lines of code and you are done. No authentication infrastructure to build, and no biometric expertise required.
You verify one result. FaceLogon handles the whole sign-in flow, so your front end stays clean and your back end stays in control.
The camera is opened by FaceLogon, not by your website. Your application never asks for camera permission and never receives the video.
Security rules are enforced on our servers, not in your website's code. Editing your HTML or JavaScript does not change what someone has to prove.
Verification codes are single use, expire in 60 seconds, and are tied to the page that asked for them, so there is nothing worth intercepting or replaying.
Trusted domains, sign-in policy, session length and security rules all live in the dashboard. Tighten anything on a Friday without shipping code.
See enrolled users, detect repeat registrations, monitor activity, and decide how your platform handles multiple accounts.
dashboard.facelogon.comPlans are based only on successful Face Sign-Ins.
* For your first 6 months. After that it moves to Growing at $29 a month.
A sign-in is one successful face check. Setting a face up the first time is free, and failed attempts are never counted. Go over your limit and we email you. Nothing switches off mid-month.
When someone creates an account, FaceLogon confirms the person behind it. If the same person tries to register again with another email address or phone number, you can identify the duplicate and apply your own rules.
No. Nothing is kept that could be turned back into a face. No photographs, no face templates. Each sign-in works out a key from the live camera view and then discards it.
This matters for more than privacy. There is no store of faces to leak, so a breach of us does not expose your users.
Bad light, a new beard, a cracked camera. It happens. Every site sets a way through before going live: a code to their email, a handoff to your existing login, or a queue you approve by hand.
Nobody gets stuck, and you do not get the support email.
Not for the main sign-in, and we would rather say so up front. Both platforms run their own login and only let outside providers replace it on their enterprise plans.
FaceLogon works today on WordPress and WooCommerce, on no-code platforms like Lovable and Webflow, on custom-built sites, and anywhere else you control your own pages.
It depends what is behind the door. Face on its own is one factor and a determined lookalike is a real risk, so it suits saving preferences, members areas and loyalty perks.
For anything with money or personal records behind it, add a password. That gives you two factors and still asks your users for nothing about themselves.
Yes. Face data is treated as sensitive in most places, including Australia, the EU and several US states, so your privacy policy needs a line about it and your users need to agree before their first sign-in.
The widget asks for that agreement and records it. The wording is yours to edit in the dashboard, and our own privacy policy sets out exactly what happens to a face image.
You choose, and you can let your users choose too. Anything from thirty days to two years, counted from the last time they signed in.
When it lapses, their setup is deleted and they are simply invited to do it again next visit.
Stop multiple-account abuse without storing reusable biometric data. 300 sign-ins a month, free for your first 6 months.
Try for free