/oauth2

A small library for parsing OAuth responses

Primary LanguageTypeScriptMIT LicenseMIT

@oslojs/oauth2

Documentation: https://oauth2.oslojs.dev

A small JavaScript library for parsing OAuth 2.0 token, token revocation, and device authorization responses by Oslo.

This package follows RFC 6749, RFC 7009, and RFC 8628.

  • Runtime-agnostic
  • No third-party dependencies
  • Fully typed
import { TokenRequestResult } from "@oslojs/oauth2";

const response = await fetch("https://github.com/login/oauth/access_token", {
	method: "POST",
	body,
	headers
});
const data = await response.json();
if (typeof data !== "object" || data === null) {
	throw new Error("Unexpected response");
}
const result = new TokenRequestResult(data);
if (result.hasErrorCode()) {
	const error = result.errorCode();
	throw new Error(`Request failed: ${error}`);
}
const accessToken = result.accessToken();
const accessTokenExpiresAt = result.accessTokenExpiresAt();
const refreshToken = result.refreshToken();

Installation

npm i @oslojs/oauth2