Skip to content

compwright/axios-oauth-client

Folders and files

NameName
Last commit message
Last commit date
Oct 5, 2022
Apr 29, 2024
Apr 29, 2024
Oct 5, 2022
Sep 22, 2018
Apr 29, 2024
Sep 22, 2018
Oct 5, 2022
Apr 29, 2024
Oct 2, 2024
Apr 29, 2024
Dec 8, 2022

Repository files navigation

axios-oauth-client

OAuth 2.0 client utils for axios

Installation

With NPM:

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

With Yarn:

$ yarn add axios-oauth-client axios

Axios OAuth 2.0 Client

Authorization Code grant

import axios from 'axios'
import { authorizationCode } from 'axios-oauth-client'
const getAuthorizationCode = authorizationCode(
  axios.create(),
  'https://oauth.com/2.0/token', // OAuth 2.0 token endpoint
  'CLIENT_ID',
  'CLIENT_SECRET',
  'https://your-app.com/oauth-redirect' // Redirect URL for your app
)

const auth = await getAuthorizationCode('AUTHORIZATION_CODE', 'OPTIONAL_SCOPES')
// => { "access_token": "...", "expires_in": 900, ... }

Owner Credentials grant

import axios from 'axios'
import { ownerCredentials } from 'axios-oauth-client'
const getOwnerCredentials = ownerCredentials(
  axios.create(),
  'https://oauth.com/2.0/token', // OAuth 2.0 token endpoint
  'CLIENT_ID',
  'CLIENT_SECRET'
)

const auth = await getOwnerCredentials('USERNAME', 'PASSWORD', 'OPTIONAL_SCOPES')
// => { "access_token": "...", "expires_in": 900, ... }

Client Credentials grant

import axios from 'axios'
import { clientCredentials } from 'axios-oauth-client'
const getClientCredentials = clientCredentials(
  axios.create(),
  'https://oauth.com/2.0/token',
  'CLIENT_ID',
  'CLIENT_SECRET'
)

const auth = await getClientCredentials('OPTIONAL_SCOPES')
// => { "access_token": "...", "expires_in": 900, ... }

Refresh Token grant

import axios from 'axios'
import { refreshToken } from 'axios-oauth-client'
const getRefreshToken = refreshToken(
  axios.create(),
  'https://oauth.com/2.0/token',
  'CLIENT_ID',
  'CLIENT_SECRET'
)

const auth = await getRefreshToken('REFRESH_TOKEN', 'OPTIONAL_SCOPES')
// => { "access_token": "...", "refresh_token": "...", "expires_in": 900, ... }

License

MIT