Title: AH JWT Auth
Author: andrewheberle
Published: <strong>Aprel 22, 2021</strong>
Last modified: Mart 5, 2025

---

Search plugins

![](https://ps.w.org/ah-jwt-auth/assets/icon.svg?rev=2527062)

# AH JWT Auth

 By [andrewheberle](https://profiles.wordpress.org/andrewheberle/)

[Download](https://downloads.wordpress.org/plugin/ah-jwt-auth.1.5.4.zip)

 * [Details](https://uz.wordpress.org/plugins/ah-jwt-auth/#description)
 * [Reviews](https://uz.wordpress.org/plugins/ah-jwt-auth/#reviews)
 * [Development](https://uz.wordpress.org/plugins/ah-jwt-auth/#developers)

 [Support](https://wordpress.org/support/plugin/ah-jwt-auth/)

## Description

This plugin allows sign in to WordPress using a JSON Web Token (JWT) contained in
a HTTP Header that is added by a reverse proxy
 that sits in front of your WordPress
deployment.

Authentication and optionally role assignment is handled by claims contained in 
the JWT.

Verification of the JWT is handled by either:

 * a shared secret key
 * retrieving a JSON Web Key Set (JWKS) from a configured URL

During the login process if the user does not exist an account will be created with
a matching role from the JWT.

If the JWT did not contain a role claim then user is created with the role set in
the plugin settings (by default this is the subscriber role).

## Screenshots

 * [[
 * This example shows a configuration with a WordPress install behind Cloudflare
   Access for SSO via JWT

## FAQ

### What header is the JWT retrieved from?

By default the plugin looks for the JWT in the `Authorization` header as follows:

    ```
    Authorization: Bearer <JWT Here>
    ```

However the token may be retrieved from a configurable HTTP header, for example 
integration with Cloudflare Access would use
 the `Cf-Access-Jwt-Assertion` header.

### What should the JWT contain?

The JWT must contain at least an `email` claim and may also contain a `role` claim:

    ```
    {
        "email": "admin@example.com",
        "role": "admin"
    }
    ```

### What signature algorimths are supported to verify the JWT?

Currently only the HS256 and RS256 alorithms are supported.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“AH JWT Auth” is open source software. The following people have contributed to 
this plugin.

Contributors

 *   [ andrewheberle ](https://profiles.wordpress.org/andrewheberle/)

[Translate “AH JWT Auth” into your language.](https://translate.wordpress.org/projects/wp-plugins/ah-jwt-auth)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/ah-jwt-auth/), check
out the [SVN repository](https://plugins.svn.wordpress.org/ah-jwt-auth/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/ah-jwt-auth/) by
[RSS](https://plugins.trac.wordpress.org/log/ah-jwt-auth/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.4

 * Fix bug that meant role was not being set based on selection

#### 1.5.3

 * Make JWKS refresh function public

#### 1.5.1

 * Fixes for JWKS refresh process

#### 1.5.0

 * Add WP cron job to refresh JWKS daily

#### 1.4.1

 * Update dependencies to resolve security issue

#### 1.3.1

 * Clean-ups and bug fixes

#### 1.3.0

 * Allow setting default role for auto-created users

#### 1.2.2

 * Version bump for plugin update on WordPress.org

#### 1.2.1

 * Version bump for plugin update on WordPress.org

#### 1.2.0

 * Fix a bug where an invalid JSON response from JWKS URL was cached leading to 
   broken SSO

#### 1.1.0

 * Make login process more efficient by skipping JWT verify/login if user is already
   authenticated

#### 1.0.3

 * Initial release on WordPress.org

#### 1.0.2

 * Added internationalisation for strings
 * Changes based on WordPress.org plugin submission feedback

#### 1.0.1

 * Added more error checking

#### 1.0.0

 * First version

## Meta

 *  Version **1.5.4**
 *  Last updated **1 yil ago**
 *  Active installations **10+**
 *  WordPress version ** 4.7 or higher **
 *  Tested up to **6.7.5**
 *  PHP version ** 7.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/ah-jwt-auth/)
 * Tags
 * [auth](https://uz.wordpress.org/plugins/tags/auth/)[authentication](https://uz.wordpress.org/plugins/tags/authentication/)
   [jwt](https://uz.wordpress.org/plugins/tags/jwt/)[login](https://uz.wordpress.org/plugins/tags/login/)
   [sso](https://uz.wordpress.org/plugins/tags/sso/)
 *  [Advanced View](https://uz.wordpress.org/plugins/ah-jwt-auth/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/ah-jwt-auth/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/ah-jwt-auth/reviews/)

## Contributors

 *   [ andrewheberle ](https://profiles.wordpress.org/andrewheberle/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ah-jwt-auth/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://paypal.me/andrewheberle)