WordPress Plugin for Auth0 Authentication
MIT License
WordPress Plugin for Auth0 Authentication
🚀 Getting Started - 💻 SDK Usage - 📆 Support Policy - 💬 Feedback
The Auth0 WordPress plugin replaces the standard WordPress login flow with a new authentication process using Auth0's Universal Login experience. This enables you to secure your WordPress site with Auth0's advanced features, such as MFA, SSO, Passwordless, PassKey, and so on.
[!IMPORTANT] This plugin is NOT a SDK (Software Development Kit.) It's APIs are internal and not intended for developers to extend directly. We do not support altering the plugin's behavior or integrating it in any way beyond what is outlined in this README. If you're looking to build a more extensive integration, please create a solution using the Auth0-PHP SDK instead.
[!WARNING] v4 of the plugin is no longer supported as of June 2023. We are no longer providing new features or bugfixes for that release. Please upgrade to v5 as soon as possible.
Please review our support policy on specific PHP and WordPress versions and when they may exit support in the future.
The plugin supports installation through Composer, and is WPackagist compatible. This approach is preferred when using Bedrock, but will work with virtually any WordPress installation.
For Bedrock installations, you'll usually run this command from the root WordPress installation directory, but check the documentation the project's maintainers provide for the best guidance.
For standard WordPress installations, this command can be run from the wp-content/plugins
sub-directory.
composer require symfony/http-client nyholm/psr7 auth0/wordpress:^5.0
When installed with Composer, the plugin depends on the presence of PSR-18 and PSR-17 library implementations. The require
command above includes two such libraries (symfony/http-client
and nyholm/psr7
) that satisfy these requirements, but you can use any other compatible libraries that you prefer. Visit Packagist for a list of PSR-18 and PSR-17 providers.
If you are using Bedrock or another Composer-based configuration, you can try installing auth0/wordpress
without any other dependencies, as the implementations may be satisfied by other already installed packages.
Note PHP Standards Recommendations (PSRs) are standards for PHP libraries and applications that enable greater interoperability and choice. You can learn more about them and the PHP-FIG organization that maintains them here.
After installation, you must activate the plugin within your WordPress site:
Please prepare the following information:
Continue configuring your Auth0 application from its Settings page:
wp-login.php
.
/wp-login.php
appended.If you're encountering issues, start by checking that your Auth0 Application is setup like so:
Scroll down and expand the "Advanced Settings" panel, then:
Upon activating the Auth0 plugin, you will find a new "Auth0" section in the sidebar of your WordPress Dashboard. This section enables you to configure the plugin in a variety of ways.
For the plugin to operate, at a minimum, you will need to configure the Domain, Client ID, and Client Secret fields. These are available from the Auth0 Application you created in the previous step. Once configured, select the "Enable Authentication" option to have the plugin begin handling authentication for you.
We recommend testing on a staging/development site using a separate Auth0 Application before putting the plugin live on your production site.
The plugin uses dedicated database tables to guarantee high performance. When the plugin is activated, it will use the database credentials you have configured for WordPress to create these tables.
Please ensure your configured credentials have appropriate privileges to create new tables.
The plugin uses WordPress' background task manager to perform important periodic tasks. Proper synchronization between WordPress and Auth0 relies on this.
By default, WordPress' task manager runs on every page load, which is inadvisable for production sites. For best performance and reliability, please ensure you have configured WordPress to use a cron job to run these tasks periodically instead.
The plugin is built on top of Auth0-PHP — Auth0's full-featured PHP SDK for Authentication and Management APIs.
For custom WordPress development, please do not extend the plugin's classes themselves, as this is not supported. Nearly all of the plugin's APIs are considered internal
and will change over time, most likely breaking any custom extension built upon them.
Instead, please take advantage of the full PHP SDK that the plugin is built upon. You can use the plugin's getSdk()
method to retrieve a configured instance of the SDK, ready for use. This method can be called from the plugin's global wpAuth0()
helper, which returns the WordPress plugin itself.
<?php
$plugin = wpAuth0(); // Returns an instanceof Auth0\WordPress\Plugin
$sdk = wpAuth0()->getSdk(); // Returns an instanceof Auth0\SDK\Auth0
Please direct questions about developing with the Auth0-PHP SDK to the Auth0 Community, and issues or feature requests to it's respective repository. Documentations and examples on working with the Auth0-PHP SDKs are also available from its repository.
Plugin Version | WordPress Version | PHP Version | Support Ends |
---|---|---|---|
5 | 6 | 8.3 | Nov 2026 |
8.2 | Dec 2025 | ||
8.1 | Nov 2024 |
Composer and WordPress do not offer upgrades to incompatible versions. Therefore, we regularly deprecate support within the plugin for PHP or WordPress versions that have reached end-of-life. These deprecations are not considered breaking changes and will not result in a major version bump.
Sites running unsupported versions of PHP or WordPress will continue to function but will not receive updates until their environment is upgraded. For your security, please ensure your PHP runtime and WordPress remain up to date.
We appreciate feedback and contribution to this repo! Before you get started, please see the following:
To provide feedback or report a bug, please raise an issue on our issue tracker.
Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.