Registry / auth-security / axios-oauth-client

axios-oauth-client

JSON →
library2.2.0jsnpmunverified

axios-oauth-client is a utility library designed to simplify the implementation of various OAuth 2.0 grant types when using the Axios HTTP client. Currently at version 2.2.0, it provides dedicated functions for common flows such as Authorization Code, Owner Credentials (Resource Owner Password Credentials), Client Credentials, and Refresh Token grants. The library integrates directly with Axios, allowing developers to instantiate OAuth client functions with an Axios instance, a token endpoint URL, and client credentials. It streamlines the process of obtaining access tokens by handling the underlying HTTP requests and OAuth 2.0 specific parameter encoding. A key differentiator is its straightforward, function-based API specifically tailored for Axios users, focusing on providing the primitives for token acquisition rather than a comprehensive OAuth client state management system. This means users are responsible for token storage, renewal logic, and attaching tokens to subsequent requests. It's built for Node.js environments (engines >= 14) and ships with TypeScript types, ensuring type safety for its users.

npm install axios-oauth-client
INSTALL
IMPORT
SIG · AXIOS-OAUTH-CLIENT
A
axios-oauth-client
auth-securityjavascriptv2.2.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

authorizationCode
import { authorizationCode } from 'axios-oauth-client'
const { authorizationCode } = require('axios-oauth-client')
The library primarily uses ES Modules, though CommonJS might be supported via transpilation.
clientCredentials
import { clientCredentials } from 'axios-oauth-client'
import clientCredentials from 'axios-oauth-client'
Functions are exported as named exports, not default.
refreshToken
import { refreshToken } from 'axios-oauth-client'
const refreshToken = require('axios-oauth-client').refreshToken
Ensure your environment supports ES Module imports (Node.js >=14 with appropriate configuration, or bundlers).

Demonstrates how to obtain an access token using the Client Credentials grant and then refresh it.

import axios from 'axios'; import { clientCredentials, refreshToken } from 'axios-oauth-client'; const tokenEndpoint = 'https://oauth.com/2.0/token'; const clientId = process.env.OAUTH_CLIENT_ID ?? 'YOUR_CLIENT_ID'; const clientSecret = process.env.OAUTH_CLIENT_SECRET ?? 'YOUR_CLIENT_SECRET'; async function authenticateAndRefresh() { const axiosInstance = axios.create(); // Client Credentials Grant console.log('Attempting Client Credentials grant...'); const getClientCredentials = clientCredentials( axiosInstance, tokenEndpoint, clientId, clientSecret ); const initialAuth = await getClientCredentials('read write'); console.log('Initial access token acquired:', initialAuth.access_token); // Simulate refreshing the token if (initialAuth.refresh_token) { console.log('Attempting Refresh Token grant...'); const getRefreshToken = refreshToken( axiosInstance, tokenEndpoint, clientId, clientSecret ); const refreshedAuth = await getRefreshToken(initialAuth.refresh_token, 'read write'); console.log('Refreshed access token acquired:', refreshedAuth.access_token); } else { console.log('No refresh token available from client credentials grant. Skipping refresh example.'); } } authenticateAndRefresh().catch(error => { console.error('Authentication error:', error.response?.data || error.message); });
Debug
Known issues
gotchaThis library requires 'axios' as a peer dependency. It must be installed separately alongside 'axios-oauth-client' and meet the specified version range (e.g., '^1.2.1').
fix
Ensure 'axios' is installed: `npm install axios` or `yarn add axios`.
affects: >=1.0.0
gotchaaxios-oauth-client provides functions for acquiring tokens but does not handle token storage, automatic refreshing before expiry, or attaching tokens to subsequent requests. Users must implement their own token management logic.
fix
Implement an Axios interceptor or manual logic to store tokens, check expiry, refresh tokens, and attach the current access token to outbound requests.
affects: >=1.0.0
gotchaThe library directly exposes functions for different OAuth 2.0 grant types. There is no unified client instance that manages state across different grant types or automatically uses a refresh token if available from a previous grant.
fix
Developers must explicitly call the appropriate grant function (e.g., `clientCredentials`, `refreshToken`) based on their application's current authentication state.
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'axios'
The peer dependency 'axios' is not installed or not resolvable by the module system.
fix
Install axios: `npm install axios` or `yarn add axios`.
TypeError: axios.create is not a function
An incompatible or incorrect version of Axios is installed, or Axios was not imported correctly.
fix
Ensure you have a compatible version of Axios (e.g., `^1.2.1`) and that you are importing `axios` as a default import: `import axios from 'axios'`.
Request failed with status code 400 (or other HTTP error) when calling an OAuth grant function.
Incorrect OAuth client ID, client secret, token endpoint URL, grant type parameters (e.g., authorization code), or scopes were provided to the OAuth server.
fix
Verify all OAuth client credentials, endpoint URLs, and grant-specific parameters (like the authorization code or refresh token) are correct and match the configuration on your OAuth provider. Check the response body for specific error details from the OAuth server.
Upgrade
Version history
2.2.0latest on npm
Audit
Dependencies
axiosrequiredRequired as a peer dependency for HTTP requests.
Agent activity
71 hits · last 30 days
node
64
Amazon
1
OpenAI (training)
1
Resources
axios-oauth-client — npm install axios-oauth-client · libregistry