The plugin turns WordPress into an IndieAuth endpoint. This can be used to act as an authentication mechanism for WordPress and its REST API, as well as an identity mechanism for other sites. It uses the URL from the profile page to identify the blog user or your author url. We recommend your site b
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.2 and PHP 7.4.
SourceWordPress plugins · Oct 19, 2026
01 / Source details
About this tool.
The plugin turns WordPress into an IndieAuth endpoint. This can be used to act as an authentication mechanism for WordPress and its REST API, as well as an identity mechanism for other sites. It uses the URL from the profile page to identify the blog user or your author url. We recommend your site be served over https to use this.
You can also install this plugin to enable web sign-in for your site using your domain.
02 / Source details
Getting started.
01Upload the indieauth directory to your /wp-content/plugins/ directory
02Activate the plugin through the ‘Plugins’ menu in WordPress
03That’s it
03 / Source details
Frequently asked questions.
What is IndieAuth?
IndieAuth is a way for doing Web sign-in, where you use your own homepage or author post URL( usually /author/authorname ) to sign in to other places. It is built on top of OAuth 2.0, which is used by many websites.
Why IndieAuth?
IndieAuth is an extension to OAuth. If you are a developer, you have probably used OAuth to get access to APIs. As a user, if you have given an application access to your account on a service, you probably used OAuth. One advantage of IndieAuth is how easily it allows everyone’s website to be their own OAuth Server without needing applications to register with each site.
How is IndieAuth different from OAuth?
IndieAuth was built on top of OAuth 2.0 and differs in that users and clients are represented by URLs. Clients can verify the identity of a user and obtain an OAuth 2.0 Bearer token that can be used to access user resources.
You can read the specification for implementation details.
How is Web Sign In different from OpenID?
The goals of OpenID and Web Sign In are similar. Both encourage you to sign in to a website using your own domain name. However, OpenID has failed to gain wide adoption. Web sign-in prompts a user to enter a URL to sign on. Upon submission, it tries to discover the URL’s authorization endpoint, and authenticate to that. If none is found, it falls back on other options.
This plugin only supports searching an external site for an authorization endpoint, allowing you to log into one site with the credentials of another site if that site is listed as the website URL in your user profile.
Indieauth.com is the reference implementation of the IndieAuth Protocol. If you activate this plugin you do not need to use this site. IndieAuth.com uses rel-me links on your website to determine your identity for authentication, but this is not required to use this plugin which uses your WordPress login to verify your identity.
How does the application know my name and avatar?
As of version 3.2, the endpoints return the display name, avatar, and URL from your user profile.
Does this require each user to have their own unique domain name?
No. When you provide the URL of the WordPress site and authenticate to WordPress, it will return the URL of your author profile as your unique URL. Only one user may use the URL of the site itself. This setting is set in the plugin settings page, or if there is only a single user, it will default to them.
How do I authenticate myself to an Indieauth server?
That, as mentioned, depends on the server. By default, the built-in IndieAuth server uses the WordPress login.
By adding Indieauth support, you can log into sites simply by providing your URL.
How secure is this?
We recommend your site uses HTTPS to ensure your credentials are not sent in cleartext. As of Version 4.5.5, this plugin requires Proof Key for Code Exchange(PKCE), whether or not the client supports it.
What is a token endpoint?
Once you have proven your identity, the token endpoint issues a token, which applications can use to authenticate as you to your site.
You can manage and revoke tokens under User->Manage Tokens. You will only see tokens for the currently logged in user.
How do I incorporate this into my plugin?
The WordPress function, get_current_user_id works to retrieve the current user ID if logged in via IndieAuth. The plugin offers the following functions to assist you in using IndieAuth for your service. We suggest you check on activation for the IndieAuth plugin by asking if ( class_exists( 'IndieAuth_Plugin') )
indieauth_get_scopes() – Retrieves an array of scopes for the auth request.
indieauth_check_scope( $scope ) – Checks if the provided scope is in the current available scopes
indieauth_get_response() – Returns the entire IndieAuth token response
indieauth_get_client_id() – Returns the client ID
indieauth_get_me() – Return the me property for the current session.
new IndieAuth_Client_Discovery( $client_id ) – Class that allows you to discover information about a client $client->get_name() – Once the class is instantiated, retrieve the name
$client->get_icon() – Once the class is instantiated, retrieve an icon
If any of these return null, the value was not set, and IndieAuth is not being used. A request authenticated with a token only gets the capabilities of the token’s scopes. A profile or email token gets read only. Plugins that need more for a token can add capability names with the indieauth_allowed_caps( $allowed, $scopes ) filter. Anything beyond capabilities must be enforced by whatever is using the scopes. The plugin does contain a list of permission descriptions to display when authorizing, but this is solely to aid the user in understanding what the scope is for.
The scope description can be customized with the filter indieauth_scope_description( $description, $scope )
What if I just want to use the REST API without OAuth exchange?
The plugin allows you to generate a token under User->Manage Tokens with access. You can provide this to an application manually.
I keep getting the response that my request is Unauthorized
Many server configurations will not pass bearer tokens. The plugin attempts to work with this as best possible, but there may be cases we have not encountered. The first step is to try running the diagnostic script linked to in the settings page. It will tell you whether tokens can be passed.
Temporarily enable WP_DEBUG which will surface some errors in your logs.
If you feel comfortable with command line entries, you can request a token under Users->Manage Tokens and use curl or similar to test logins. Replace example.com with your site and TOKEN with your bearer token.
This will quickly test your ability to authenticate to the server. Additional diagnostic tools may be available in future.
If this does not work, you can add define( 'INDIEAUTH_TOKEN_ERROR', true ); to your wp-config.php file. The INDIEAUTH_TOKEN_ERROR flag will return an error if there is not a token passed allowing you to troubleshoot this issue, however it will require authentication for all REST API functions even those that do not require them, therefore this is off by default.
If your Micropub client includes an Authorization HTTP request header but you still get an HTTP 401 response with body missing access token , your server may be stripping the Authorization header. If you’re on Apache, try adding this line to your .htaccess file :
If that doesn’t work either, you may need to ask your hosting provider to whitelist the Authorization header for your account. If they refuse, you can pass it through Apache with an alternate name . The plugin searches for the header in REDIRECT_HTTP_AUTHORIZATION, as some FastCGI implementations store the header in this location.
I get an error that parameter redirect_uri is missing but I see it in the URL
Some hosting providers filter this out using mod_security. For one user, they needed Rule 340162 whitelisted as it detects the use of a URL as an argument.
What is the Ticketing extension and how do I enable it?
Ticketing for IndieAuth is a developing extension to OAuth2/IndieAuth. It creates a ticket endpoint on your site where other sites can send you a ticket, which can be redeemed for a token to access private resources on that other site. You can enable the experimental endpoint functionality by adding the below to your wp-config.php. If this becomes more established, it will be added in the settings page.
define( ‘INDIEAUTH_TICKET_ENDPOINT’, true );
At this time, the functionality is limited to the receiving of tickets, not the sending of same. It enables a new tab under the User called Manage External Tokens, which allows you to see which external tokens are stored. Tokens are stored per user.
Since the extension is developing, there is currently not a specified way to transfer this token to a client to be used.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
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