AuthDock — Login Security, 2FA, Social Login & Brute Force Protection

AuthDock — Login Security, 2FA, Social Login & Brute Force Protection

Details
View on WordPress

AuthDock is a professional-grade WordPress authentication and user access management plugin that replaces 5–7 separate security plugins with a single, unified solution. Built with WordPress-native UI, REST API integration, and zero bloat.

Whether you run a membership site, WooCommerce store, multi-author blog, or corporate intranet — AuthDock gives you full control over how users log in, stay safe, and interact with your site.

🔑 Social Login

Let users sign in with one click using their existing accounts. No more forgotten passwords.

  • Google OAuth 2.0 — Sign in with Google using OAuth 2.0 authorization
  • Facebook Login — Authenticate via the Facebook Graph API
  • GitHub OAuth — Developer-friendly sign in with GitHub
  • X (Twitter) OAuth 2.0 — Uses OAuth 2.0 with PKCE (S256) for maximum security
  • Button Style — Choose between icon + text, icon only, or text only button styles
  • Button Layout — Display buttons vertically or horizontally
  • Button Order — Drag and drop to reorder provider buttons
  • Default Role — Assign a specific WordPress role to new social registrations (e.g., Subscriber, Customer)
  • Auto-Registration — Automatically create WordPress accounts from social profiles
  • Domain Restriction — Restrict social login to specific email domains (e.g., company.com, university.edu)
  • Avatar Integration — Automatically set user profile pictures from social account avatars
  • Account Linking — Users can link/unlink social accounts from their WordPress profile page
  • Shortcode — Place social login buttons anywhere using [authdock_social_login]
  • Developer Filtersauthdock_allow_social_account_linking and authdock_allow_social_registration for custom control

✉️ Magic Link Login

Passwordless authentication — users receive a one-time login link via email. No passwords to remember or leak.

  • Enable/Disable — Master toggle for passwordless login
  • Link Expiry — Set how long each magic link stays valid (in minutes, default: 10 minutes)
  • Rate Limiting — Maximum magic link requests per email per hour (default: 5/hour) to prevent abuse
  • Allowed Roles — Restrict magic login to specific user roles (e.g., Subscribers, Editors)
  • Force Magic Login Mode — Hide the standard WordPress password form entirely and show only the magic link form
  • Custom Email Subject — Personalize the magic link email subject line
  • Custom Email Body — Customize the email body using merge tags: {user_name}, {magic_link}, {expiry_time}, {site_name}, {ip_address}
  • One-Time Use — Each magic link is cryptographically random and can only be used once
  • Token Invalidation — Magic links are automatically invalidated when a user changes their password
  • Anti-Enumeration — Generic success messages prevent attackers from discovering valid email addresses
  • Shortcode — Display the form anywhere with [authdock_magic_login] and optional redirect attribute

🔐 Two-Factor Authentication (2FA)

Add a second layer of security to every login. Supports TOTP authenticator apps and email-based verification codes.

  • Enable/Disable — Master toggle for two-factor authentication
  • TOTP Method — Time-based One-Time Passwords (RFC 6238) with QR code provisioning via Google Authenticator, Authy, Microsoft Authenticator, etc.
  • Email Method — Receive a 6-digit numeric verification code via email
  • Enforced Roles — Force specific WordPress roles (e.g., Administrator, Editor) to enable 2FA
  • Grace Period — Give users a configurable number of days to set up 2FA before enforcement kicks in (default: 3 days)
  • Trusted Devices — Allow users to skip 2FA on recognized devices for a configurable number of days (default: 30 days)
  • Trust Duration — Set how long a device stays trusted (in days)
  • Backup Recovery Codes — Generate 10 one-time-use backup codes for account recovery if the authenticator device is lost
  • Brute-Force Protection — Rate-limited to 5 verification attempts per session to prevent code guessing
  • Encrypted Secret Storage — TOTP secrets are encrypted with AES-256-CBC before storing in the database
  • Replay Protection — Each TOTP code can only be used once per time window (RFC 6238 §5.2)
  • Clock Drift Tolerance — Accepts codes from ±1 time step (30 seconds) to handle minor clock differences
  • Interstitial Challenge Screen — Clean, WordPress-native verification screen shown after primary authentication
  • Admin Management — Administrators can view and disable 2FA for any user from the user profile page

🛡️ Brute Force Protection (Login Limiter)

Stop brute-force attacks with intelligent lockout rules that escalate automatically.

  • Enable/Disable — Master toggle for login attempt limiting
  • Max Attempts — Set the number of failed login attempts before triggering a lockout (default: 5)
  • Lockout Duration — Time for the initial lockout period in minutes (default: 15 minutes)
  • Progressive Lockout — Lockouts automatically escalate: 15 minutes 1 hour 24 hours for repeat offenders
  • Auto-Blacklist — Permanently ban an IP after a configurable number of lockouts (e.g., after 5 lockouts)
  • IP Whitelist — Allow trusted IP addresses to bypass login limits (supports exact match, CIDR ranges like 192.168.1.0/24, and wildcards like 10.0.0.*)
  • IP Blacklist — Permanently block specific IP addresses, CIDR ranges, or wildcard patterns
  • Notify Admin on Lockout — Send email alerts to the site administrator when an IP gets locked out
  • Notify Threshold — Configure after how many lockouts the notification triggers (default: 1)
  • XML-RPC Integration — Automatically block XML-RPC authentication from locked-out IPs
  • Login Page Warnings — Display remaining attempt count and lockout timers directly on the login page
  • Log Retention — Configure how long failed login attempt data is retained (default: 30 days)
  • Trusted Proxies — Specify trusted reverse proxy IPs for accurate client IP detection behind load balancers

🔄 Dynamic Login & Logout Redirects

Send users exactly where they need to go — based on their role, or if it is their first login.

  • Role-Based Login Redirects — Set a custom URL for each WordPress role after login (e.g., Editors /editorial-dashboard, Subscribers /members-area)
  • Role-Based Logout Redirects — Set a custom URL for each WordPress role after logout
  • First-Login Redirect — Redirect brand new users to a welcome page, onboarding wizard, or setup screen on their very first login
  • Relative & Absolute URLs — Supports both relative paths (/dashboard) and full URLs (https://example.com/welcome)
  • Open Redirect Prevention — All redirects are validated via wp_safe_redirect() and wp_validate_redirect() to prevent open redirect attacks

📋 Audit Logging

Keep a complete, searchable record of every authentication event happening on your site.

  • Enable/Disable — Master toggle for audit logging
  • Tracked Events — Login success, login failure, logout, password reset, password change, user registration, profile updates (email/role changes), social login, social linking/unlinking, magic link requests, magic link usage, 2FA enabled/disabled, session termination, access blocked, lockout events
  • Event Details — Each log entry records: user ID, event type, IP address, user agent, JSON context data, and precise timestamp
  • Retention Period — Choose how long to keep logs: 30, 60, 90, 180, 365 days, or unlimited (0 = forever)
  • Auto-Cleanup — Daily WP-Cron job automatically removes expired log entries in batches of 1,000 to avoid database locks
  • Filter by Event Type — View only specific event categories (e.g., show only failed logins)
  • Filter by Date Range — Narrow results by date_from and date_to parameters
  • Filter by User — View all events for a specific user ID
  • Search by IP — Find all events from a particular IP address
  • Full-Text Search — Search across event types, IPs, and context data
  • CSV Export — Download your complete audit log as a CSV file with formula injection protection
  • JSON Export — Export logs in JSON format for integration with external tools
  • Purge All Logs — One-click purge to clear all historical log data
  • Admin UI Viewer — Built-in admin page with paginated table, filters, and export buttons
  • Custom Database Table — Logs are stored in a dedicated authdock_audit_logs table with proper indexes for fast queries

🏰 Security Hardening

Close common WordPress security holes without installing another plugin.

Custom Login URL
* Custom Slug — Replace wp-login.php with your own secret URL (e.g., /my-secure-login)
* Block Action — Choose what happens when someone visits the default wp-login.php: return a 404 error or redirect to the homepage
* Recovery Key — Access the login page in emergencies via a secret query parameter even when the custom URL is active

XML-RPC Control
* Disable XML-RPC — Completely disable the XML-RPC interface to block remote brute-force attacks
* Partial Disable — Remove only authentication methods while keeping pingbacks functional

REST API Restriction
* Restrict to Authenticated Users — Block all REST API access for unauthenticated visitors
* Namespace Whitelist — Allow specific third-party REST namespaces (e.g., WooCommerce, Jetpack) to remain accessible

User Enumeration Prevention
* Block Author Archives — Redirect ?author=N enumeration queries to the homepage
* Restrict User REST Endpoint — Block /wp-json/wp/v2/users for non-logged-in users
* Generic Login Errors — Replace specific “username not found” or “wrong password” messages with a generic error

Password Strength Enforcement
* Force Strong Passwords — Master toggle for password policy enforcement
* Minimum Length — Set the minimum password length (default: 8 characters)
* Require Uppercase — Mandate at least one uppercase letter
* Require Lowercase — Mandate at least one lowercase letter
* Require Number — Mandate at least one numeric digit
* Require Special Character — Mandate at least one special character (e.g., !@#$%)
* Enforced Roles — Apply password rules only to specific roles

Security HTTP Headers
* X-Content-Type-Options — Prevents MIME-type sniffing (nosniff)
* X-Frame-Options — Blocks clickjacking by restricting iframe embedding (SAMEORIGIN)
* X-XSS-Protection — Legacy XSS filter for older browsers (1; mode=block)
* Referrer-Policy — Controls referrer information sent with requests (strict-origin-when-cross-origin)
* Strict-Transport-Security (HSTS) — Enforces HTTPS connections for 1 year (max-age=31536000; includeSubDomains)
* Permissions-Policy — Restricts access to camera, microphone, and geolocation APIs

Role-Based Session Duration
* Per-Role Cookie Lifetime — Set different authentication cookie durations per WordPress role (in hours)

📧 Email Notifications

Stay informed about critical security events with real-time email alerts — for admins and users.

Admin Notifications
* Multiple Failed Logins — Alert every N failed attempts from the same IP (default: every 3)
* IP Lockout — Alert when an IP address gets locked out
* Admin Login Alert — Notify when an administrator account logs in
* New User Registration — Alert on every new user registration
* User Promoted to Admin — Alert when any user is promoted to the Administrator role
* Admin Password Changed — Alert when an administrator’s password is changed or reset
* 2FA Disabled — Alert when any user disables their two-factor authentication
* Login from New IP — Alert when a user logs in from a previously unseen IP address

User Self-Notifications
* Password Changed — Notify the user when their password is changed
* Email Changed — Notify at the OLD email address when a user’s email is updated (security measure)
* 2FA Status Changed — Notify the user when 2FA is enabled or disabled on their account
* Social Account Linked — Notify when a social provider is connected to their account
* New Device Login — Notify the user when a login is detected from a new IP address
* Account Locked — Notify the user when their account is locked due to failed attempts

Notification Settings
* Custom Recipients — Set custom email addresses for admin notifications (defaults to the site admin email)
* Throttle Period — Configurable cooldown in minutes to prevent notification flooding (default: 60 minutes)
* Digest Mode — Option to batch notifications instead of sending them individually
* Test Email — Send a test notification to verify your email configuration is working

🚪 wp-admin Access Control

Restrict who can access the WordPress dashboard — by role, by IP, or both.

  • Enable/Disable — Master toggle for access control
  • Blocked Roles — Select which WordPress roles are blocked from accessing /wp-admin (e.g., Subscriber, Customer)
  • IP Restriction Mode — Enable IP-based restrictions so only whitelisted IPs can access wp-admin
  • IP Whitelist — Specify allowed IP addresses and CIDR ranges (e.g., 203.0.113.5, 192.168.1.0/24)
  • Hide Admin Bar — Remove the WordPress admin bar from the frontend for blocked roles
  • Redirect Action — Choose what happens when access is denied: redirect to homepage, redirect to a custom URL, or show a 403 Forbidden page
  • Custom Redirect URL — Set a specific URL for the access-denied redirect
  • Emergency Bypass Key — A secret query parameter (?authdock_bypass=YOUR_KEY) to regain access if you get locked out
  • Smart Exceptions — AJAX requests, WP-Cron, and admin-post.php are always allowed through
  • Administrator Immunity — Administrators are never blocked, regardless of settings

⏱️ Session Management

Take control of user sessions — limit concurrent logins, enforce idle timeouts, and terminate sessions remotely.

  • Enable/Disable — Master toggle for session management
  • Concurrent Session Limit — Set the maximum number of simultaneous active sessions per user (0 = unlimited). Oldest sessions are destroyed when the limit is exceeded
  • Idle Session Timeout — Automatically log out users after a configurable period of inactivity (in minutes, 0 = disabled)
  • Per-Role Session Duration — Set different session lifetimes for each WordPress role (in hours)
  • Admin Session Viewer — View all active user sessions via the REST API, including user details and last activity timestamps
  • Remote Session Termination — Administrators can terminate all sessions for any user with a single API call
  • Throttled Activity Tracking — Last-activity timestamps are updated at most once per 5 minutes to minimize database writes

⚡ Performance & Infrastructure

AuthDock is built for speed and follows WordPress best practices from top to bottom.

  • Conditional Asset Loading — CSS and JavaScript files load only on pages where they are needed
  • Indexed Database Tables — Custom tables use proper indexes for fast lookups
  • WP-Cron Maintenance — Audit log cleanup runs via non-blocking WP-Cron
  • Transient-Based Tracking — Brute force attempt tracking uses transients (no additional DB queries per login attempt)
  • REST API Powered — All admin data operations go through the authdock/v1 REST API namespace with 15+ endpoints
  • Hook-Based Architecture — Centralized Loader class registers all hooks for clean dependency management
  • Custom Capabilitiesauthdock_manage_settings, authdock_view_audit_logs, authdock_export_audit_logs, authdock_manage_sessions, authdock_manage_lockouts
  • Clean Activation — Creates database tables, sets default options, registers capabilities, and schedules cron
  • Clean Deactivation — Clears cron events but preserves all settings for reactivation
  • Full Uninstall — Removes everything: options, user meta, database tables, capabilities, and transients
  • Full i18n — All user-facing strings use proper WordPress internationalization functions with the authdock text domain

🤔 Why Choose AuthDock?

  • Replace 5–7 plugins — Social login + magic links + 2FA + brute force + audit logs + session management + access control — all in one
  • WordPress-native UI — Looks and feels like core WordPress, not a foreign dashboard
  • REST API powered — Modern, secure data handling for all admin operations
  • Lightweight & fast — …

Details

Plugin code:
authdock
Plugin version:
1.0.0
Outdated:
No
WP version:
6.0 or higher
PHP version:
7.4 or higher
Test up to WP version:
7.0
Total installations:
0
Last updated:
2026-06-09
Rating:
Times rated:
0
access-control
brute-force-protection
login-security
social-login
two-factor-authentication