Skip to main content
WordPress Plugin · Version 2.1.6 · by Degird

The Complete WordPress Authentication & Login Security Plugin

Single sign-on, passkeys, ten social providers, two-factor authentication that only interrupts when a sign-in looks unusual, brute-force protection, and an audit log that can prove it has not been edited.

AuthDock 2.0 turned a login-security plugin into a complete authentication platform. It replaces the five to seven separate plugins most WordPress sites stack on top of each other — and it does that without telemetry, without a licence check, and without a premium tier hiding the feature you actually needed. Every module ships switched off; turning one on is your decision.

Free forever · GPL-2.0+ · WordPress 6.0+ · PHP 7.4+ · No telemetry

One Plugin, Not Seven

Every Layer of WordPress Authentication, Unified

Login protection is usually assembled from a 2FA plugin, a social login plugin, an SSO connector, a limit-login plugin, a hide-wp-login plugin, an audit log plugin, and a session manager. AuthDock is all of those, sharing one settings menu, one database schema, one role model, and one set of capabilities.

Single Sign-On (OIDC)
Risk-Based 2FA
10 Social Providers
Tamper-Evident Audit Log

Who It's For

Who Uses AuthDock?

If your WordPress site has users other than you — customers, members, authors, staff, or an entire directory of them — the login form is the part of it attackers actually target.

Organisations With a Directory

Connect Keycloak, Auth0, Okta, Authentik, Zitadel, Microsoft Entra ID, Google Workspace, Ping, FusionAuth, GitLab, Gitea, Nextcloud — anything that publishes an OpenID Connect discovery document. Paste one URL and the endpoints, scopes, and signing keys configure themselves. Directory groups map to WordPress roles, checked against the provider's signed token rather than anything a browser sent, and the mapping will never demote your last remaining administrator.

Membership & Community Sites

Passkeys and magic links behind one switch, ten social providers, and role-specific 2FA enforcement that holds moderators to a stronger standard than everyone else.

WooCommerce Stores

Social buttons render on the WooCommerce login and checkout forms, and role-based redirects send customers to their account page instead of wp-admin.

Multi-Author Blogs

Require two-factor for editors and administrators, log every account change, and keep contributors out of the dashboard entirely.

Multisite Networks

A network administrator can require two-factor, brute-force protection, audit logging, breached-password checks, or passkeys across every site — while each site keeps its own settings and its own isolated audit log.

Agencies & Maintainers

Commit an authdock.json to your repository, or define AUTHDOCK_CONFIG in wp-config.php, and every client site deploys with the same hardened policy. A managed setting shows as read-only on screen with a badge saying where the value comes from, so nobody edits a field that will be silently ignored — and nothing is written into the database, so removing the file puts a site back exactly as it was.

Anyone Still Running wp-login.php Wide Open

The default WordPress login form accepts unlimited attempts, announces valid usernames through author archives, and leaves no record of who tried what. AuthDock closes all three gaps in a single activation — lockouts, enumeration prevention, and a hash-chained history you can search, filter, verify, and export.

Core Features · Version 2.1.6

Twelve Layers Between Your Site and a Compromised Login

Each module is independent — enable only what your site needs, and every one of them ships switched off — but they are designed to compose. Single sign-on, social login, passkeys, magic links, and two-factor authentication all run through the same verification pipeline and land in the same audit log.

01 / 12

Single Sign-On (OpenID Connect)

One configurable OIDC provider covers nearly the whole market — Keycloak, Auth0, Okta, Authentik, Zitadel, Microsoft Entra ID, Google Workspace, Ping, FusionAuth, GitLab, Gitea, Nextcloud, and anything else that publishes a discovery document. Paste one URL and the endpoints, scopes, and signing keys configure themselves. Directory groups become WordPress roles, mapped against the provider's signed token and never against anything a browser sent. Two guardrails hold: it never demotes your last remaining administrator whatever the directory says, and when no rule matches it leaves an account's roles alone rather than stripping them. Token signatures are verified on your own server with what PHP already ships — no new dependency — and several providers can run at once.

Simple Workflow

How AuthDock Works

From a default wp-login.php to a logged, rate-limited, multi-factor front door — guided by a setup stepper that runs on first activation.

01

Install & Activate

Install from the WordPress.org directory and activate. Nothing is enforced until you turn it on, and the setup stepper opens on its own — one step at a time, each with its own URL, resuming wherever you left off.

02

Work Through Setup

Seven steps cover every check the security score grades you on. One click switches on eleven of them; the two that change somebody else's next sign-in ask first. A fix may only ever make the site more protected than it was.

03

Choose Your Sign-In Methods

Connect an OIDC provider, enable social logins, passkeys, and magic links, and decide when a second factor is asked for — always, per role, or only when the sign-in looks unusual.

04

Watch, Then Tune

Risk scoring starts in watch-only mode and records what it would have done. Read a week of your own traffic on the analytics screen, verify the log's integrity, then decide what to enforce.

Pricing

Free Forever. Every Feature Included.

AuthDock is a free plugin on WordPress.org under the GPL-2.0-or-later licence. There is no pro tier, no feature gate, no licence key to renew, and no telemetry — with every module switched off, the plugin makes no outbound request at all.

Free Forever

Complete
$0

GPL licensed

The whole platform — SSO, risk-based 2FA, ten social providers, passkeys, brute-force protection, access control, analytics, lifecycle, network policies, and a tamper-evident audit log.

Single sign-on through any OpenID Connect provider
Risk-based two-factor from nine locally computed signals
Ten social providers, passkeys, and magic links
TOTP, email, and SMS second factors
Brute-force lockouts, bot protection, and country rules
Custom login URL, site hardening, and wp-admin access control
Tamper-evident audit log, webhook streaming, and exports
Login analytics drawn locally as SVG
Account lifecycle, session limits, and remote termination
Network-wide policies for multisite
Configuration as code, plus email and Telegram alerts
Shortcodes, Gutenberg blocks, REST API, and WP-CLI

Version 2.1.6, released 2 September 2026. Requires WordPress 6.0 or newer and PHP 7.4 or newer; tested up to WordPress 7.1. Upgrading from 1.x changes nothing about how people sign in — no setting is reset and nothing is switched on. Single sign-on needs your own OpenID Connect provider, social login needs your own OAuth credentials from each provider (free to create), and SMS needs an SMS gateway you connect yourself.

Full Feature Set

More Built-In Controls

Beyond the twelve core layers, AuthDock covers the details that usually mean another plugin, another vendor, or a snippet in functions.php.

Configuration as Code

Define any setting with AUTHDOCK_CONFIG in wp-config.php, or commit an authdock.json to your theme or wp-content.

Secrets Outside the Database

An OAuth secret set by constant never reaches the database — not in an export, a backup, or a screenshot.

Network-Wide Policies

Per control: the site decides, the network suggests, or the network requires. Stricter only — never looser.

Per-Site Exemptions

Excuse a staging copy or a client sandbox one site at a time, rather than switching the whole policy off.

Light, Dark or System

Per person, stored against the user and applied on the server, so a screen never flashes white on navigation.

75 Drawn Icons

Dashicons is gone. Every icon is a 24×24 stroke path inlined by the plugin, never fetched from a CDN.

Seven Menu Entries

Twenty-four flat screens became five groups plus Dashboard and Setup — and every pre-2.0 deep link still resolves.

0–100 Security Score

Every row names a problem, says what it is worth, and either fixes it or sends you to the decision.

Bot Protection

Honeypot, timing token, and an optional proof-of-work challenge for clients that never touch a real browser.

Country Rules

Allow or deny sign-ins by location from a local GeoLite2 database. Nothing is sent to a lookup service.

Spray Detection

Catches one password tried against many accounts — the pattern a per-account limit cannot see.

Breached-Password Checks

k-anonymity means no password and no full hash ever leaves your site.

Trusted Proxy Support

Read the real client IP behind Cloudflare, Fastly, or Akamai — CIDR ranges, wildcards, and the right end of X-Forwarded-For.

Page-Cache Safe

Authentication URLs are declared uncacheable before any cache commits, with a Site Health check that fetches the login page from outside.

IP Blocking & Whitelist

Exact, CIDR, or wildcard matching in both directions, with your own address exempt from lockouts.

Trusted Devices

Skip 2FA prompts on recognised devices for a configurable thirty days.

QR Enrolment & Backup Codes

Scan to provision any RFC 6238 app; ten single-use recovery codes issued on enrolment.

Account Linking

Connect or disconnect any of the ten providers — and OIDC — from your own profile screen.

Shortcodes & Blocks

Every form is a shortcode, a Gutenberg block, and a template a child theme can override.

REST API & Hooks

The authdock/v1 namespace, plus documented filters for risk scoring, providers, roles, channels, and SMS.

WP-CLI & Site Health

wp authdock on the command line, and Site Health checks that report what the edge says about your login URL.

Custom Capabilities

Granular capabilities for settings, audit viewing, export, sessions, and lockouts.

Export & Retention

CSV with formula-injection safeguards, streaming JSON, and retention from 30 days to unlimited.

Member Telegram Links

Off by default — storing a chat ID for every member is personal data a site should have to ask for.

Dynamic Redirects

Per-role login and logout destinations, a first-login redirect, and open-redirect validation on all of them.

Custom Login Branding

Your logo and colours on the login page, from four presets or your own values. The 2FA screen keeps its layout.

Break-Glass Constants

Every control that can lock you out has a wp-config.php constant that disables it, plus a global safe mode.

Scheduled Export

A daily or weekly copy of the log written into an uploads directory closed to the web server.

Translation Ready

Fully internationalised — and front-end pages with no AuthDock content no longer load its translations at all.

Privacy by Architecture

Nothing About Your Users Ever Leaves Your Server

A security plugin is the last place a site should accept a phone-home. AuthDock has no telemetry, no licence check, and no upsell, and with every module switched off it makes no outbound request at all. The parts that look like they ought to need a cloud service do not: risk scoring runs on nine signals computed locally, the analytics charts are drawn as plain SVG on your own server from your own database, country lookups read a GeoLite2 file you host, and breached-password checking uses k-anonymity so no password and no full hash is ever transmitted. The only outbound requests AuthDock makes are ones you configured and can name — your identity provider, your OAuth apps, your webhook, your Telegram bot, your SMS gateway.

What that architecture actually buys you:

No third party to trust no chart service, no risk API, no bundled SMS provider, no CDN for artwork
A defensible privacy answer authentication data stays in your database, and a subject access request has one place to look
It works where the internet does not localhost, an intranet, an air-gapped staging copy — identical behaviour, because nothing calls out

Deactivating AuthDock clears its scheduled cron events but leaves your settings, tables, and user data intact. Deleting the plugin removes all of it, including the Telegram bot token and every linked chat ID — the choice stays yours.

Why We Built It This Way

Every Change Can Only Make
a Site More Protected

Almost every WordPress compromise that is not a vulnerable plugin is a guessed, reused, or phished password. The default login form will accept attempts forever, author archives quietly confirm which usernames are real, and when something does go wrong there is no record of it — nothing to tell you which account was used, from which address, or how many times somebody tried before they succeeded.

The fix has always existed, but it arrived as a shopping list: one plugin for two-factor codes, another for social sign-in, another to count failed attempts, another to move wp-login.php, another to keep a log, and — the moment an organisation with a staff directory turns up — a sixth for SSO that knows about none of the others. Six vendors, six update cadences, six settings screens, and six chances for one to conflict with the rest. AuthDock is that shopping list rewritten as one plugin, where every sign-in method composes through the same verification pipeline and every event lands in the same searchable log.

Version 2.0 added the half an organisation actually buys an authentication plugin for — single sign-on, risk-based rules, six more providers, passwordless-first, analytics, account lifecycle, network policies, configuration as code, log integrity and streaming — then rebuilt the admin around them: twenty-four menu items became seven, setup became a guided stepper, and every screen got a light and a dark theme. One rule ran through all of it, and it is the most distinctive thing about the release: a change AuthDock makes on your behalf may only ever make a site more protected than it was. The setup wizard never writes a false, empties a list, or loosens a policy. A network policy can make fifty sites stricter and has deliberately no way to make them looser. Risk scoring only ever raises the bar. The password is hidden, never removed. The log reports, and never repairs.

One Stack, Not Six

Replaces the usual pile of single-purpose security plugins — and the SSO connector too.

Defence in Depth

Rate limiting, risk scoring, second factors, and access control reinforce each other.

Nothing Hidden

No telemetry, no licence check, no encoded code, and every third-party service disclosed.

Answers After the Fact

A hash-chained record of every authentication event, with a verifier that names the broken row.

Built to Stay Fast

Five queries removed from every page view; a passkey sign-in went from up to 500 queries to one.

No Locked Doors

Recovery keys, an emergency bypass, and a wp-config.php constant for every control that can lock you out.

FAQ

Frequently Asked Questions

Get Started

Ready to Lock Down Your WordPress Login?

Install AuthDock from the WordPress.org directory, work through the seven-step setup, and start recording every authentication event. It takes a few minutes, costs nothing, and nothing is enforced until you say so.

Free forever · GPL-2.0+ · No telemetry · No licence key · No premium upsell