Production-grade JWT Auth for WordPress developers.

JWT Auth Pro adds the missing control layer to the free JWT plugin you're already running: a token dashboard, refresh tokens, instant revocation, audit logs, and rate limiting, managed from wp-admin, without rebuilding your existing auth flow.

Built on our free JWT plugin — trusted by 60,000+ active installs and backed by a 14-day compatibility guarantee.

Below is this page written as a JSON Web Token. Its header says what the product is, its payload lists what Pro carries, and its signature is the proof. Each segment can be decoded.

header.payload.signature

signature verified · HS256 This page is a real token. Hover or tap a colour to decode it in place.

Go on. Forge one.

This is a token like the ones your WordPress site issues. Promote yourself to administrator and watch what the signature does about it.

payload — edit a claimdecoded
{
}
the token your client sendsencoded

Tampering is the easy case. Both plugins catch it, because both add JWT to WordPress.

The difference is what happens after the token is issued. The free plugin generates tokens and walks away. Pro tracks every token, logs every access, and lets you revoke instantly.

Two payloads, decoded side by side.

Stay on free if you only need to generate and validate tokens for a small project. Upgrade to Pro if you need to inspect, refresh, revoke, audit, and rate-limit tokens in production — from the WP admin, without custom code.

Free (WP.org)3 claims
{
"jwt_authentication": true,
"token_generation": true,
"token_validation": true
}
// 17 claims this payload cannot make
"token_refresh"
"instant_revocation"
"token_dashboard"
"auto_revoke_on_password_change"
"auto_revoke_on_email_role_change"
"analytics_dashboard"
"geoip_tracking"
"rate_limiting"
"security_headers"
"token_family_tracking"
"settings_via_wordpress_ui"
"signing_algorithms"
"ip_anonymization"
"data_retention_policies"
"priority_support"
"detailed_documentation"
"developer_hooks_and_filters"

Free forever. It issues a token, checks it on each request, and that is the whole payload.

Pro20 claims
{
// core authentication
"jwt_authentication": true

Basic JWT Authentication — add login via JSON Web Tokens.

"token_generation": true

Issue access tokens on successful auth.

"token_validation": true

Verify token integrity on each request.

// token management
"token_refresh": "64-char"

Secure refresh with 64-char tokens and replay attack prevention.

"instant_revocation": true

Revoke compromised sessions immediately.

"token_dashboard": true

See every active token, owner, expiry, and last activity.

"auto_revoke_on_password_change": true

All sessions killed when a password is compromised.

"auto_revoke_on_email_role_change": true

Sessions invalidated on identity or permission changes.

// visibility & security
"analytics_dashboard": "7d/30d/90d"

Success/failure rates, response times, 7d/30d/90d history.

"geoip_tracking": "MaxMind GeoLite2"

Country detection from IP.

"rate_limiting": "60 req/min"

IP-based, 60 req/min default, configurable, HTTP 429 responses.

"security_headers": true

Automatic HSTS, X-Frame-Options, X-Content-Type-Options, XSS-Protection.

"token_family_tracking": true

Detects refresh token replay attacks by tracking token lineage.

// configuration & compliance
"settings_via_wordpress_ui": true

No wp-config.php editing required.

"signing_algorithms": ["HS256","RS256","ES256","EdDSA", …]

Configurable signing algorithms, chosen from the UI.

"ip_anonymization": true

GDPR-compliant option to anonymize stored IP addresses.

"data_retention_policies": "1–365 days"

Configurable retention for analytics and token data.

// support & developer tools
"priority_support": true

Direct help from the developer.

"detailed_documentation": true

Guides, examples, best practices.

"developer_hooks_and_filters": "30+"

Actions and filters for deep integration.

}
Pro starts at $59.99/yr. Every plan carries all twenty.See Pro plans

Six reasons developers move from free to Pro.

Each is something the free plugin doesn't ship with — and something you'd otherwise build, debug, and maintain yourself.

  • “I need refresh tokens.”

    Keep users logged in without storing passwords. Secure 64-character refresh tokens with family tracking detect replay attacks automatically.

    + Token Refresh + Replay Detection
  • “I need to revoke any token instantly.”

    Revoke any token in a single click. Stop a compromised session from hitting your API before the next request lands.

    + Instant Revocation
  • “I need automatic protection on credential changes.”

    Tokens auto-revoke when a user changes their password, email, or role — so one leaked credential never leaves the API wide open.

    + Auto-Revoke Rules
  • “I need to see every token at a glance.”

    Every active token in one dashboard — owner, expiry, last activity, country of origin. No more guessing which app still holds a session.

    + Token Dashboard + GeoIP
  • “I need API analytics and rate limiting.”

    Success and failure rates, response times, 7/30/90-day windows. Built-in IP rate limiting and automatic security headers on every response.

    + Analytics + Rate Limiting
  • “I need a UI instead of custom code.”

    Drop your secret key into wp-config.php once. Everything else — signing algorithm, token lifetime, CORS, retention policy — lives in WordPress admin instead of code.

    + Configuration via WP Admin

Not just authentication. Complete token control.

Token Dashboard

Every active token in one view: who owns it, when it was issued, when it expires, last activity. Revoke with one click.

2 active2 revoked1 expired
usertokenlast usedstatus
Jessica SmitheyJhbGciOiJI.eyJzdWIiOiI0Mi.q9Xb2kJune 13, 2025 3:08 amActive
Jane DoeeyJhbGciOiJI.eyJzdWIiOiIxNy.Lm0Zr4April 2, 2025 1:40 amRevoked
Sam PetersoneyJhbGciOiJI.eyJzdWIiOiI4OC.Tt7pQaJanuary 1, 2025 1:40 amExpired
Nayeli StrosineyJhbGciOiJI.eyJzdWIiOiIyMy.Hc81WdJune 13, 2025 3:08 amActive
Brett RogahneyJhbGciOiJI.eyJzdWIiOiI1MS.Vy3nEuJune 10, 2025 10:34 amRevoked
Try it: revoke a session and it is dead before the next request lands.

Automatic Revocation Policies

One compromised account doesn't mean open API access.

  • on: password_changerevoke allAll of that user's sessions are killed.
  • on: email_changerevoke allIdentity changed, tokens invalidated.
  • on: role_changerevoke allPermissions changed, tokens invalidated.

Custom Claims

Add custom claims to JWT tokens using WordPress filters. What you write in functions.php on the left lands in the payload on the right.

// functions.php
add_filter('jwt_auth_token_before_sign', function($token, $user) {
    $token['customer_type'] = get_user_meta($user->ID, 'customer_type', true);
    $token['loyalty_points'] = get_user_meta($user->ID, 'loyalty_points', true);
    $token['preferred_currency'] = get_user_meta($user->ID, 'currency', true);
    return $token;
}, 10, 2);
// decoded payload (example values)
{
  "iss": "https://your-site.com",
  "exp": 1750388880,
  "customer_type": "wholesale",
  "loyalty_points": "1280",
  "preferred_currency": "EUR"
}

Usage Analytics

Authentication events, success and failure rates, response times, geographic distribution.

successful authfailed authsample data

Rate Limiting & Security Headers

IP-based, 60 req/min (configurable). No nginx config required.

60 requests / minuteHTTP 429
Strict-Transport-Security ✓ HSTS
X-Frame-Options ✓
X-Content-Type-Options ✓
X-XSS-Protection ✓
# request 61 from the same IP, same minute
HTTP/1.1 429 Too Many Requests

Security Audit Trail

Complete compliance logging with full context.

"created"
June 13, 2025 3:08 am
"ip"
110.11.194.83
"user_agent"
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/124
"hash"
bb414972b6df2f5a902...
"user"
John Doe (ID 1)
"last_used"
June 13, 2025 3:08 am
"revoked"
June 13, 2025 3:08 am

Admin Configuration Interface

Aside from the secret key, every setting lives in WordPress admin.

JWT token expiration7 days
Refresh token expiration30 days
Enable CORS
Analytics retention90 days
Anonymize IP

Three calls. Any client.

Works with React, Vue, Flutter, mobile apps, or any client.

Generate Token

POST /wp-json/jwt-auth/v1/token

Authenticate users and issue tokens with a single API call.

Validate Token

POST /wp-json/jwt-auth/v1/token/validate

Signature check, claims validation, expiration status.

Refresh Token

POST /wp-json/jwt-auth/v1/token/refresh

Auto renewal, lifecycle management, session continuity.

HS256/384/512RS256/384/512ES256/384/512PS256/384/512EdDSA signing algorithms · 60 features total

After purchase: issued to verified in six steps.

  1. Install Pro

    Download the Pro zip from your account, upload through Plugins → Add New.

  2. Activate your license

    Paste the key once. Local and staging installs don't count against the quota.

  3. Configure JWT

    Drop your secret key into wp-config.php once; pick signing algorithm, token lifetime, CORS, retention from the admin UI.

  4. Enable Pro features

    Refresh tokens, auto-revoke rules, analytics, rate limiting. Each is a single checkbox.

  5. Verify in the token dashboard

    Hit your API; watch tokens appear live with owner, expiry, IP, country.

  6. 14-day compatibility safety net

    Support reaches the plugin author directly. If Pro can't be made to work on your stack, you get a refund.

Most teams have Pro running before they refill their coffee.

60,000+ sites trust our authentication.

Signed by people who run it. Real reviews from WordPress.org.

Easy, stable, powerful, extensible

Allowed me to get up and running with a Vue.js frontend authentication flow within minutes. Really great documentation too!
signed, MadeByCaliper

Perfect to use for API

JWT is brillant and it works out of the box. Further to this is it really stable and does it job.
signed, Steffi

Great plugin!

I've been using the plugin for over year, it's very good and user friendly!
signed, Mwale Kalenga

High quality plugin

Delivers what is promised. And that's quite comprehensive list of features. Recommended.
signed, Martin Šenkeřík

Simply perfect!

I integrated it with my Flutter app, and it works flawlessly.
signed, graficowalab
Exactly as described, very easy to use and clear documentation. Thank you
signed, WildPress

Very useful plugin

I'm using this plugin since some months and it works perfectly, a simple way to authenticate from ext. apps
signed, softradeweb

Perfect

Does exactly what it states! Have been using this plugin for about a year now and haven't had any problems!
signed, xero2112

Simple, site-based pricing — every plan is full Pro.

Same header, same payload. Only the number of sites changes what you sign for.

header

Professional Single Site

payload

"sites": 1

Full Pro for one production site.

signature

$59.99/ year

Get Single Site
header

Professional Team

payload

"sites": "up to 5"

Full Pro across a handful of client or product sites.

signature

$149.99/ year

Get Team
header

Professional Agency

payload

"sites": "up to 20", "white_label": true

Full Pro for agencies. Adds white-labeling.

signature

$339.99/ year

Get Agency

Every plan includes

14-day compatibility guarantee on every plan. Local and staging installs are free. One payment, no upsells inside the plugin.

Requires PHP 8.1+ and WordPress 5.0+.

  • Token Management Dashboard
  • Token Refresh with Replay Detection
  • Instant & Auto Revocation
  • Usage Analytics (7d/30d/90d)
  • Rate Limiting & Security Headers
  • GeoIP Tracking
  • All settings via UI
  • IP Anonymization & Data Retention
  • 30+ Developer Hooks & Filters
  • Priority Support

Questions, answered plainly.

Anything else, ask support. It reaches the plugin author directly.

What does Pro do that the free plugin does not?

The free plugin issues and validates JWT tokens — that is it. Pro adds the production layer most teams build by hand: token dashboard, refresh tokens with replay-attack detection, instant and automatic revocation, analytics over 7/30/90 days, IP-based rate limiting, automatic security headers, configurable signing algorithms, GDPR-friendly data retention. Aside from the secret key in wp-config.php, every Pro setting is managed from the WordPress admin UI.

Does this plugin work out of the box?

Yes. Pro adds a professional JWT layer on top of the WP REST API: create, validate, refresh, revoke tokens so users can authenticate from mobile apps, SPAs, or any external system. You still implement the calling logic in those clients.

What happens if Pro does not work on my setup?

Every plan includes a 14-day compatibility guarantee. Open a support ticket and we work the issue with you directly. If Pro genuinely cannot run on your stack, you get a refund (processor fees, typically 3–5%, are deducted).

Does a local install count as a site for my license?

No. Local and staging environments do not count against your quota.

Do you offer lifetime access?

Yes. Every plan has a yearly and a lifetime option; lifetime is a one-time payment.

Do you offer a free trial?

No traditional trial, but the 14-day compatibility guarantee covers the only risk that matters: whether Pro runs on your stack.

What are the system requirements?

PHP 8.1+, WordPress 5.0+ with the REST API enabled, HTTP Authorization header enabled on the server.

How does token refresh work?

On login the client gets an access token (default 7 days) and a refresh token (default 30 days). When the access token expires the client exchanges the refresh token for a new one without re-prompting the user. Refresh tokens are 64 characters, tracked as a family, and detect replay attacks automatically.

What happens to tokens when a user changes password, email, or role?

By default all of that user's tokens are revoked. Each rule can be toggled independently and customized with filters.

What signing algorithms are supported?

HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512, EdDSA; chosen in the settings UI or via the jwt_auth_algorithm filter.

Both add JWT to WordPress. The difference is what happens after the token is issued.

Keep the auth flow you already have. Add the dashboard, refresh tokens, revocation, audit trail and rate limiting on top, backed by a 14-day compatibility guarantee.