Giter Site home page Giter Site logo

twitter-auth-await's Introduction

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

twitter-auth-await's People

Contributors

nargonath avatar sivaram636 avatar

Watchers

Cahyadi Nugraha avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.