Have ideas to improve npm?Join in the discussion! »

    axios-oauth-client

    1.4.0 • Public • Published

    axios-oauth-client

    Build Status Greenkeeper badge

    OAuth 2.0 client utils for axios

    Installation

    $ npm install --save axios-oauth-client axios-token-interceptor axios

    Axios OAuth 2.0 Client

    Authorization Code grant

    const axios = require('axios');
    const oauth = require('axios-oauth-client');
    const getAuthorizationCode = oauth.client(axios.create(), {
      url: 'https://oauth.com/2.0/token',
      grant_type: 'authorization_code',
      client_id: 'foo',
      client_secret: 'bar',
      redirect_uri: '...',
      code: '...',
      scope: 'baz',
    });
    
    const auth = await getAuthorizationCode(); // => { "access_token": "...", "expires_in": 900, ... }

    Owner Credentials grant

    const axios = require('axios');
    const oauth = require('axios-oauth-client');
    const getOwnerCredentials = oauth.client(axios.create(), {
      url: 'https://oauth.com/2.0/token',
      grant_type: 'password',
      client_id: 'foo',
      client_secret: 'bar',
      username: 'asdf',
      password: 'yuio',
      scope: 'baz'
    });
    
    const auth = await getOwnerCredentials(); // => { "access_token": "...", "expires_in": 900, ... }

    Client Credentials grant

    const axios = require('axios');
    const oauth = require('axios-oauth-client');
    const getClientCredentials = oauth.client(axios.create(), {
      url: 'https://oauth.com/2.0/token',
      grant_type: 'client_credentials',
      client_id: 'foo',
      client_secret: 'bar',
      scope: 'baz'
    });
    
    const auth = await getClientCredentials(); // => { "access_token": "...", "expires_in": 900, ... }

    Refresh Token grant

    const axios = require('axios');
    const oauth = require('axios-oauth-client');
    const getRefreshToken = oauth.client(axios.create(), {
      url: 'https://oauth.com/2.0/token',
      grant_type: 'refresh_token',
      client_id: 'foo',
      client_secret: 'bar',
      refresh_token: '...',
      scope: 'baz'
    });
    
    const auth = await getRefreshToken(); // => { "access_token": "...", "refresh_token": "...", "expires_in": 900, ... }

    Axios OAuth 2.0 Authentication interceptor

    const axios = require('axios');
    const oauth = require('axios-oauth-client');
    const tokenProvider = require('axios-token-interceptor');
    
    const getOwnerCredentials = oauth.client(axios.create(), {
      // see example above
    })
    
    const instance = axios.create();
    instance.interceptors.request.use(
      // Wraps axios-token-interceptor with oauth-specific configuration,
      // fetches the token using the desired claim method, and caches
      // until the token expires
      oauth.interceptor(tokenProvider, getOwnerCredentials)
    );

    License

    MIT

    Install

    npm i axios-oauth-client

    DownloadsWeekly Downloads

    8,254

    Version

    1.4.0

    License

    MIT

    Unpacked Size

    44.4 kB

    Total Files

    21

    Last publish

    Collaborators

    • avatar