Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

oauth2-client-ts

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oauth2-client-ts

An exstensible OAuth 2.0, standard compliant client library for Node.js and the Web.

  • 0.1.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
49
decreased by-49.48%
Maintainers
1
Weekly downloads
 
Created
Source

TypeScript OAuth 2.0 Client

An exstensible OAuth 2.0, standard compliant client library for Node.js and the Web. Also supports the Bearer Token Usage and Token Introspection standards.

Basic usage

Start by creating and configuring your OAuth 2.0 client.

import * as OAuth2 from 'oauth2-client-ts';

const client = new OAuth2.Client({
    credentials: new OAuth2.ClientCredentials('myClientId', 'myClientSecret'),
    tokenEndpoint: 'https://www.example.com/auth/token',
    authorizationEndpoint: 'https://www.example.com/auth/authorize',
});

You can then use one of the flows described in the OAuth 2.0 standard.

Resource Owner Password Credentials

const flow = client.startResourceOwnerPasswordCredentialsFlow();
const token = await flow.getToken(new OAuth2.ResourceOwnerPasswordCredentialsGrant('myUsername', 'myPassword'), 'scope.read scope.write'); // Scope is optional.

Client Credentials

const flow = client.startClientCredentialsFlow();
const token = await flow.getToken('scope.read scope.write'); // Scope is optional.

Refresh Token

// Perform the "Refresh Token" OAuth 2.0 flow.
const flow = client.startRefreshTokenFlow();
const token = await flow.getToken(new OAuth2.RefreshTokenGrant('ey.myRefresh.token'), 'scope.read scope.write'); // Scope is optional.

Bearer Token Usage

Import the Bearer Token Usage extension.

import 'oauth2-client-ts/dist/extensions/bearer_token_usage';

You can then use the convenience functions on the TokenCredentials type.

// Returns key-value pairs for an authorized JSON HTTP request body.
token.getBodyParameters();
// Returns key-value pairs for an HTTP request's query parameters.
token.getQueryParameters();
// Returns key-value pairs for an HTTP Authorization header.
token.getRequestHeaders();

...

const token = OAuth2.TokenCredentials.fromAuthorizationHeader('Bearer ey.received.token');

Token Introspection

Import the Token Introspection extension.

import 'oauth2-client-ts/dist/extensions/token_introspection';

When creating your OAuth 2.0 client, you can now specify the token introspection endpoint of the OAuth server.

const client = new OAuth2.Client({
    ...
    introspectionEndpoint: 'https://www.example.com/auth/introspect',
});

Finally, introspect access or refresh tokens using your client directly.

const result = await client.introspect(
    // The credentials used to authorize the introspection request:
    new OAuth2.TokenCredentials('my.authorization.token', 'Bearer'),
    'token.to.introspect'
);

Keywords

FAQs

Package last updated on 13 Feb 2022

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc