Socket
Socket
Sign inDemoInstall

twitter-auth-await

Package Overview
Dependencies
1
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    twitter-auth-await

Twitter auth library for async/await users


Version published
Weekly downloads
31
increased by55%
Maintainers
1
Install size
142 kB
Created
Weekly downloads
 

Readme

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 a promise resolving 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 twitterClient.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

Last updated on 12 Apr 2019

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc