WordPress REST API – OAuth 1.0a Server

plugin banner

Authenticate with your site via OAuth 1.0a

Author:WP REST API Team (profile at wordpress.org)
WordPress version required:4.4
WordPress version tested:6.4.2
Plugin version:0.4.4
Added to WordPress repository:06-10-2016
Last updated:25-01-2024
Rating, %:74
Rated by:7
Plugin URI:https://oauth1.wp-api.org/
Total downloads:120 869
Active installs:9 000+
plugin download
Click to start download

This plugin uses the OAuth 1.0a protocol to allow delegated authorization; that is, to allow applications to access a site using a set of secondary credentials. This allows server administrators to control which applications can access the site, as well as allowing users to control which applications have access to their data.

This plugin only supports WordPress >= 4.4.

The latest stable version is also available from the WordPress Plugin Directory.

New to OAuth

We strongly recommend you use an existing OAuth library. You’ll be best off if you understand the authorization process, but leave the actual implementation to well-tested libraries, as there are a lot of edge cases.

Start reading from the Introduction to get started!

For OAuth Veterans

If you already know how to use OAuth, here’s the lowdown:

  • The plugin uses OAuth 1.0a in
  • We use the three-legged flow
  • To find the REST API index, apply the API autodiscovery process
  • The endpoints for the OAuth process are available in the REST API index: check for $.authentication.oauth1 in the index data.
    • The temporary credentials (request token) endpoint is $.authentication.oauth1.request (typically /oauth1/request)
    • The authorization endpoint is $.authentication.oauth1.authorize (typically /oauth1/authorize)
    • The token exchange (access token) endpoint is $.authentication.oauth1.access (typically /oauth1/access)
  • Your callback URL must match the registered callback URL for the application in the scheme, authority (user/password) host, port, and path sections. (Subpaths are not allowed.)
  • The only signature method supported is HMAC-SHA1.
  • OAuth parameters are supported in the Authorization header, query (GET) parameters, or request body (POST) parameters (if encoded as application/x-www-form-urlencoded). OAuth parameters are not supported in JSON data.