Skip to content
WordPress.org

Kernewek

  • Themow
  • Plugins
  • News
  • A-dro
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

Rishav AuthNova OTP

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

Rishav AuthNova OTP

By rishav001
Download
  • Details
  • Reviews
  • Installation
  • Development
Support

Description

Rishav AuthNova OTP adds a one-time-password verification layer to core WordPress authentication flows.

Features include:

  • Configurable OTP length and charset (numeric or alphanumeric)
  • OTP expiry and retry limits with temporary lockouts
  • Login OTP verification step (after password check)
  • OTP-gated registration flow
  • OTP-gated password reset flow
  • Delivery via wp_mail, SendGrid, and Twilio
  • OTP storage using hashes (never plaintext)
  • Resend OTP with cooldown and challenge rotation

Security highlights:

  • OTP values are hashed before storage and are never saved as plaintext
  • OTP hashes use keyed HMAC storage and constant-time verification
  • OTP challenges expire automatically and enforce retry limits per challenge
  • Request throttling applies cooldown and exponential backoff per IP and identifier
  • Lockout windows reduce repeated invalid OTP submissions
  • Nonces are applied on sensitive form submissions
  • Public auth responses are intentionally generic to reduce account-enumeration leakage
  • Delivery uses synchronous-first send with bounded async retry fallback and challenge-level delivery status tracking

Security limitations:

  • This plugin does not replace passwords, HTTPS, WAF/rate-limiting at the edge, or secure hosting controls
  • OTP delivery depends on the configured email/SMS provider uptime and deliverability
  • Administrators should combine this plugin with standard WordPress hardening and monitoring

Reliability notes:

  • OTP delivery is attempted synchronously first to reduce silent failures
  • If synchronous delivery fails and background delivery is healthy, the plugin schedules bounded retries
  • If background delivery is unhealthy (for example DISABLE_WP_CRON), fallback queueing is skipped and users receive a retry-safe error
  • Resend cooldown state is server-authoritative and exposed through a status endpoint used by frontend countdown UX
  • Background queue payload contains only challenge ID (no raw OTP or destination data)

External Services

This plugin can connect to third-party services to deliver OTP messages. These services are optional and only used if enabled in plugin settings.

Twilio (SMS Delivery)

  • Service: Twilio Programmable Messaging API
  • Purpose: Send OTP codes by SMS
  • Data sent: destination phone number, sender phone number, OTP message text, account SID for authentication
  • Credential handling: Twilio credentials are stored in WordPress options and used only when sending OTP messages
  • When sent: when OTP delivery method includes SMS and an OTP is generated for login, registration, password reset, or resend
  • Why sent: to deliver time-sensitive OTP codes to the user by SMS
  • Terms of Service: https://www.twilio.com/legal/tos
  • Privacy Policy: https://www.twilio.com/en-us/legal/privacy

SendGrid (Email Delivery)

  • Service: SendGrid Mail Send API
  • Purpose: Send OTP codes by email
  • Data sent: recipient email address, sender email/name, message subject, OTP message body, API key for authentication
  • Credential handling: SendGrid API key is stored in WordPress options and used only when sending OTP messages
  • When sent: when email provider is set to SendGrid and an OTP is generated for login, registration, password reset, or resend
  • Why sent: to deliver time-sensitive OTP codes to the user by email
  • Terms of Service: https://sendgrid.com/policies/terms/
  • Privacy Policy: https://sendgrid.com/policies/privacy/

Configuration

  1. Set OTP length, type, expiry, retry limit, and lockout duration.
  2. Choose delivery method: Email, SMS, or Both.
  3. Configure provider credentials for SendGrid and/or Twilio if needed.
  4. Enable or disable OTP on login, registration, and password reset flows.

Installation

  1. Upload the plugin folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Go to Settings > OTP Authentication.
  4. Configure OTP rules and delivery providers.

FAQ

Does this plugin store OTP values in plain text?

No. OTP values are hashed before storage and verified using hash comparison.

Can I use SMS delivery?

Yes. Twilio is supported for SMS delivery.

Can I use email API delivery?

Yes. SendGrid API is supported, and wp_mail is available as a fallback.

Does this work with the default wp-login.php flow?

Yes. The plugin integrates with WordPress login, registration, and lost-password actions.

What user field is used for phone numbers?

By default, the plugin reads phone_number user meta. You can change the meta key in plugin settings.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Rishav AuthNova OTP” is open source software. The following people have contributed to this plugin.

Contributors
  • rishav001

Translate “Rishav AuthNova OTP” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • Initial release.
  • Added OTP flows for login, registration, and reset.
  • Added SendGrid and Twilio integrations.
  • Added resend cooldown UX and secure challenge rotation.
  • Added configurable OTP policy controls in the admin settings page.

Meta

  • Version 1.0.0
  • Last updated 1 mis ago
  • Active installations Fewer than 10
  • WordPress version 5.8 or higher
  • Tested up to 6.9.4
  • PHP version 7.4 or higher
  • Language
    English (US)
  • Tags
    email verificationlogin securityotpsmstwo factor
  • Advanced View

Ratings

No reviews have been submitted yet.

Your review

See all reviews

Contributors

  • rishav001

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Support
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Kernewek

  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Code is Poetry.
The WordPress® trademark is the intellectual property of the WordPress Foundation.