OneCode Login provides a modern, passwordless authentication experience for your WordPress site. Instead of traditional passwords, users receive a secure 6-digit verification code via email. Key Features Passwordless Authentication – Users log in with just their email address 6-Digit Verification Co
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.8 and PHP 7.4.
SourceWordPress plugins · Oct 18, 2026
01 / Source details
About this tool.
OneCode Login provides a modern, passwordless authentication experience for your WordPress site. Instead of traditional passwords, users receive a secure 6-digit verification code via email.
Key Features
Passwordless Authentication – Users log in with just their email address
6-Digit Verification Codes – Secure, time-limited codes sent via email
Rate Limiting – Built-in protection against brute force attacks
Request ID Binding – Each code is bound to a specific login session for enhanced security
Neutral Feedback – Prevents user enumeration attacks by not revealing if an email exists
Customizable – Configure expiry times, cooldowns, and email templates
Accessible – Full keyboard navigation and screen reader support
Gutenberg Block – Easy to add login forms to any page
Shortcode Support – Use [onecode_login] anywhere
wp-login.php Integration – Optionally replace the default WordPress login
Developer API – Other plugins can use OneCode Login as an email one-time-code (OTP) service to verify a visitor’s email — see the Developer information section
Security Features
Cryptographically secure code generation
Codes and magic-link tokens are stored HMAC-hashed, never in plain text
Configurable code expiry (default: 10 minutes)
Resend cooldown to prevent spam
IP-based and email-based rate limiting
Automatic lockout after failed attempts
Codes are single-use and invalidated after successful login
Use Cases
Membership sites where password fatigue is an issue
Internal tools where security without complexity is needed
Any site wanting to improve user experience
Developer information
Other plugins on the same site can use OneCode Login as a generic email one-time-code (OTP) service — for example to verify a guest’s email before letting them act. OneCode emails the code and verifies it; your plugin keeps full control of its own login/session (OneCode only asserts that the code is valid for the email — it never logs anyone in). It works for any email address; the address does not need a WordPress account.
All entry points are plain functions (and matching filters), so you do not need a hard dependency on any class. The API is gated by the Settings → Advanced → Enable developer API toggle.
Detect support (side-effect free — never call the request hook just to probe):
01Start authentication — email a code and receive a handle: $handle = onecode_login_request_otp( $email, array( ‘consumer’ => ‘my_plugin’ ) ); // $handle = array( ‘request_id’, ‘auth_secret’, ‘expires_in’ (seconds), ‘expires_at’ (UTC), ‘sent’ ) // On failure: a WP_Error (codes: disabled, invalid_request, rate_limited, cooldown).
Keep request_id and auth_secret server-side (e.g. in a transient tied to the visitor). The auth_secret is NEVER shown to the customer — it is what stops an outsider who only knows the email from completing verification by guessing codes.
02Complete authentication — the customer gives your plugin the code from the email: $result = onecode_login_verify_otp( array( ’email’ => $email, ‘request_id’ => $handle[‘request_id’], ‘code’ => $code_from_customer, ‘auth_secret’ => $handle[‘auth_secret’], ‘consumer’ => ‘my_plugin’, ) ); // Success: array( ‘valid’ => true, ’email’ => … ). Failure: WP_Error.
On failure show a generic message to the user (the API intentionally returns a single verify_failed code so it can’t be used as an oracle).
Filters are also available for loose coupling: onecode_login_request_otp ( $pre, $email, $args ) and onecode_login_verify_otp ( $pre, $args ).
Discovery and capabilities:
onecode_login_supports( $feature ) — returns true for 'otp' , ‘identity_assertion’, 'any_email' and 'api_enabled' . It reports whether the feature is usable right now : while the developer API toggle is off every key returns false, so a gate on supports() keeps you from offering a flow the API would refuse. Use your own fallback in that case.
onecode_login_api()->is_enabled() — the developer API toggle on its own.
onecode_login_api() — returns the OneCode_Login_API service instance.
OneCode_Login_API::VERSION — the API contract version (independent of the plugin version), so you can feature-gate against the API surface.
do_action( 'onecode_login_api_init', $api ) — fires once the API is ready; bind to it if you want to wire up as soon as OneCode Login loads.
Reference: $args['consumer'] (a short [a-z0-9_-] label identifying your integration) is required on both calls — it isolates your codes and rate limits from the built-in login and from other consumers. Both request and verify are rate-limited by OneCode, returning rate_limited / cooldown WP_Errors you can surface to the user.
See it in action
Screenshots & previews.
Admin settings page with all configuration optionsEmail input form for passwordless login6-digit verification code entry screen
02 / Source details
Getting started.
01Upload the onecode-login folder to /wp-content/plugins/
02Activate the plugin through the Plugins menu in WordPress
03Go to Settings > OneCode Login to configure options
04Add the login form using the [onecode_login] shortcode or Gutenberg block
Shortcode Options
05redirect_to – URL to redirect after successful login
06button_text – Custom text for the send code button
By default, no. OneCode Login works alongside traditional password login. However, you can enable the “Replace wp-login.php” option to use OneCode Login as the primary login method.
What happens if the email does not arrive?
Users can request a new code after the cooldown period (default: 60 seconds). Check your server email configuration if emails consistently fail to deliver.
Is this secure?
Yes. The plugin uses cryptographically secure random number generation, time-limited codes, rate limiting, and request binding to prevent various attack vectors.
Can I customize the email template?
Yes. Go to Settings > OneCode Login > Email tab to customize the subject and body of verification emails. You can use placeholders like {code}, {expires}, {site_name}, and {user_email}.
Does it work with multisite?
The plugin is designed for single-site installations. Multisite compatibility may be added in future versions.
What if a user does not have an account?
The plugin only allows existing users to log in. For security reasons, it does not reveal whether an email address has an account – users always see the same “check your email” message.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati