Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

twitter-auth-await

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

twitter-auth-await

Twitter auth library for async/await users

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Twitter-auth-await

Twitter auth library for async/await users

semantic-release code style: prettier Commitizen friendly Build Status License: MIT


Installation

NPM: npm install -S twitter-auth-await

Yarn: yarn add twitter-auth-await

Requirements

This library is made to run on Node >= 8.x.

Auth workflow supported

Currently the library only supports Twitter's OAuth 1.0a workflow as I didn't need the others. If you'd like to have other workflow supported by this library, please feel free to file an issue for it.

API

const client = new TwitterOAuth(options)

Creates a new client to start the auth workflow where:

  • options - an object with the following keys:
    • consumerKey - the consumer key provided by Twitter for your app. required
    • consumerSecret - the consumer secret provided by Twitter for your app. required
    • callback - the optional URL that Twitter should call after the user has gone through Twitter authorization successfully.
  • returns an instance of the library.

async getRedirectAuthURI()

This method is the first one to be called when starting the auth workflow where:

  • returns the URI where you should redirect your client to i.e https://api.twitter.com/oauth/authenticate?oauth_token=requestToken.

getAccessToken(oAuthToken, oAuthTokenVerifier)

Process the token retrieved from the previous step to obtain the access token where:

  • oAuthToken - the token sent back to your callback (if submitted) when the authorization workflow is successful. required
  • oAuthTokenVerifier - the token verifier sent along the oAuthToken. required
  • returns an object with the following properties:
    • accessToken - the access token needed to access the user's protected Twitter resources.
    • accessTokenSecret - the access token secret.
    • userId - Twitter's user id.
    • xAuthExpires - times after which the token will expire.

How it works

There are 3 steps required for you to start using this library:

  1. Create a new client using the constructor:
import { TwitterOAuth } from 'twitter-auth-await';

const twitterClient = new TwitterOAuth({
  consumerKey: 'myConsumerKey',
  consumerSecret: 'myConsumerSecret',
  callback: 'http://127.0.0.1/auth-callback',
});

When using the Twitter's auth in your app you should have created your app credentials prior using this lib. Follow this link to do so: https://apps.twitter.com/. Once done, you'll have your consumer key and consumer secret. If you don't provide a callback URL you'll end up with a PIN on the client side that your client would need to submit to your server for you to complete the auth workflow.

  1. Get the redirect auth URI:
const redirectUri = await twitterClient.getRedirectAuthURI();

response.redirect(redirectUri);
  1. Get the access token:
const { oauth_token: oauthToken, oauth_verifier: oauthVerifier } = request.query;

const { accessToken } = await twitter.getAccessToken(oauthToken, oauthVerifier);

The sections above don't assume any particular node framework that's why there isn't any boilerplate surrounding the snippets.

Examples

WIP

Keywords

FAQs

Package last updated on 27 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc