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 · Nov 9, 2026
01 / Source details
Aboutthistool.
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
Membership sites where password fatigue is an issue
Customer portals requiring simple authentication
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
Gettingstarted.
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.
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
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