MARKETPLACE
PLUGINS
OAUTH 1.0A REQUEST SIGNING HANDLER
OAuth 1.0a Request Signing Handler logo

OAuth 1.0a Request Signing Handler

Published July 2020
   •    Updated November 2025

Plugin details

OAuth 1.0a uses the Authorization header as a way to authenticate the client to the OAuth Provider itself using Bubble API Connector.
This Authorization header is required to use, for instance but not limited to, to Twitter (https://developer.twitter.com/en/docs/basics/authentication/oauth-1-0a) or the Noun Project APIs.

Providing an App (a.k.a Consumer, Client) key/secret pair, and optionally token key/secret pair, this plugin action generates the Authorization header to re-use in an API GET or POST signed call.

Sample Authorisation header returned by the plugin:
Authorization: OAuth oauth_consumer_key = "CONSUMER_API_KEY", oauth_nonce = "OAUTH_NONCE", oauth_signature = "OAUTH_SIGNATURE", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "OAUTH_TIMESTAMP", oauth_token = "ACCESS_TOKEN", oauth_version = "1.0".

The demo application link: https://oauth10a-demo.bubbleapps.io/version-test

💡 𝗦𝘂𝗯𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻𝘀 𝗮𝗿𝗲 𝗽𝗿𝗼𝗿𝗮𝘁𝗲𝗱. 𝗜𝗳 𝘆𝗼𝘂 𝗶𝗻𝘀𝘁𝗮𝗹𝗹 𝗮𝗻𝗱 𝘂𝗻𝘀𝘂𝗯𝘀𝗰𝗿𝗶𝗯𝗲 𝘁𝗵𝗶𝘀 𝗽𝗹𝘂𝗴𝗶𝗻 𝗶𝗻 𝗼𝗻𝗲 𝗱𝗮𝘆 𝘁𝗼 𝘁𝗲𝘀𝘁 𝗶𝘁 𝗼𝘂𝘁, 𝘆𝗼𝘂'𝗹𝗹 𝗼𝗻𝗹𝘆 𝗯𝗲 𝗰𝗵𝗮𝗿𝗴𝗲𝗱 𝟭/𝟯𝟬𝘁𝗵 𝗼𝗳 𝘁𝗵𝗲 𝗺𝗼𝗻𝘁𝗵𝗹𝘆 𝘀𝘂𝗯𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻 𝗳𝗲𝗲.

📖 𝗦𝘁𝗲𝗽-𝗯𝘆-𝗦𝘁𝗲𝗽 𝗶𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗶𝗼𝗻𝘀 𝗮𝗿𝗲 𝘁𝗵𝗲 "𝗜𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗶𝗼𝗻𝘀" 𝘀𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗗𝗲𝗺𝗼 𝗘𝗱𝗶𝘁𝗼𝗿 𝗶𝘀 𝗶𝗻 𝘁𝗵𝗲 "𝗟𝗶𝗻𝗸𝘀" 𝘀𝗲𝗰𝘁𝗶𝗼𝗻 𝗼𝗳 𝘁𝗵𝗲 𝗣𝗹𝘂𝗴𝗶𝗻 𝗣𝗮𝗴𝗲.

Contact us at [email protected] for any support question.

$19

One time  •  Or  $5/mo

stars   •   0 ratings
54 installs  
This plugin does not collect or track your personal data.

Platform

Web & Native mobile

Contributor details

wise:able logo
wise:able
Joined 2020   •   122 Plugins
View contributor profile

Instructions

GENERATE OAUTH1.0A HEADER ===========================

ACTION DESCRIPTION
--------------------------------

 GENERATE OAUTH1.0A HEADER returns the Authorisation header, used to sign the API Request to be re-used in the API Call, using Bubble API Connector.

STEP-BY-STEP SETUP
--------------------------------

0) Generate your API Consumer key/secret pair (and optionally token key/secret pair) on the service that provides the API.

1) In a workflow, use the "Generate OAuth1.0a Header" action, enter the required information and the Base URL.

The base URL is the URL to which the request is directed, minus any query string or hash parameters. It is important to use the correct protocol here, so make sure that the “https://” portion of the URL matches the actual request sent to the API.

   Inputs Fields :
     - CONSUMER KEY: Consumer or App key, provided by the API service to call.
     - CONSUMER SECRET: Consumer or App Secret, provided by the API service to call.
     - TOKEN KEY: Token key, optional depending on the API service to call.
     - TOKEN SECRET: Token Secret, optional depending on the API service to call.
     - BASE URL: The base URL is the URL to which the request is directed, minus any query string or hash parameters. It is important to use the correct protocol here, so make sure that the “https://” portion of the URL matches the actual request sent to the API.

   Output Fields :
     - AUTHORIZATION: Returns the Authorisation header, used to sign the API Request to be re-used in the API Call, using Bubble API Connector.

2) Go to "Plugins" section, add the Bubble API Connector plugin, Define an API Name for a new API call, set "None or self-handled" as Authentication, click on "Expand", define a Name, configure the API Call URL (POST or GET) as Action (not Data), Data type JSON, and define a new Headers key named "authorization" and parameterised value as "[AuthHeader]" for instance, allowing to set the Header dynamically in the workflow. Also, set the Body type as JSON.

If you are not familiar with setting up an external API call in Bubble, please refer to the following ressources:
- Bubble Manual: https://manual.bubble.io/building-plugins/adding-api-connections, the method used is "Private key in header".
- Bubble API Tutorial: https://bubble.io/page?type=page&name=index&id=learn&tab=tabs-1&lesson_ref=4&no_arrow=true.

3) Click on "Enter Manual Response" and fill in {"response":"OK"}. This is a temporary dummy response to make sure the action appears for the next step.

4) Back to the workflow, add after the "Generate OAuth1.0a Header" action your API call action defined at step 2, and map the output of the "Generate OAuth1.0a Header" action in the API Call "authorization" input parameter that you set up at the same step.

5) Initialize the API Call so that Bubble can parse the API response data format. To achieve this, you can either:
   - Set it manually: copy the API response format, typically from your API documentation, and paste it on "Manually enter API response" screen of the screen shown at step 2.
   - Set it automatically: the plugin prints in the Logs section of the application the generated header, which you can paste directly in the value field of Authorization, and use the button Reinitialize call. Do not forget to put back [AuthHeader] in the value field, as generated headers are time-sensitive and need to be regenerated.

IMPLEMENTATION EXAMPLE
======================
Feel free to browse the app editor in the Service URL for an implementation example.

TROUBLESHOOTING
================
Any plugin related error will be posted to the the Logs tab, "Server logs" section of your App Editor.
Make sure that "Plugin server side output" and "Plugin server side output" is selected in "Show Advanced".

> Server Logs Details: https://manual.bubble.io/core-resources/bubbles-interface/logs-tab#server-logs

QUESTIONS ?
===========
Contact us at [email protected] for any additional feature you would require or support questi

Types

This plugin can be found under the following types:

Categories

This plugin can be found under the following categories:

Resources

Support contact
Documentation
Tutorial

Rating and reviews

No reviews yet

This plugin has not received any reviews.
Bubble