Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

pkce-challenge

crouchcd2.6mMIT5.0.0TypeScript support: included

Generate or verify a Proof Key for Code Exchange (PKCE) challenge pair

PKCE, oauth2

readme

pkce-challenge

Generate or verify a Proof Key for Code Exchange (PKCE) challenge pair.

Read more about PKCE.

Installation

npm install pkce-challenge

Usage

Default length for the verifier is 43

import pkceChallenge from "pkce-challenge";

await pkceChallenge();

gives something like:

{
    code_verifier: 'u1ta-MQ0e7TcpHjgz33M2DcBnOQu~aMGxuiZt0QMD1C',
    code_challenge: 'CUZX5qE8Wvye6kS_SasIsa8MMxacJftmWdsIA_iKp3I'
}

Specify a verifier length

const challenge = await pkceChallenge(128);

challenge.code_verifier.length === 128; // true

Challenge verification

import { verifyChallenge } from "pkce-challenge";

(await verifyChallenge(challenge.code_verifier, challenge.code_challenge)) ===
  true; // true

Challenge generation from existing code verifier

import { generateChallenge } from "pkce-challenge";

(await generateChallenge(challenge.code_verifier)) === challenge.code_challenge; // true

changelog

Changelog

4.0.0 - 2023-05-11

  • BREAKING CHANGE: Use Web Cryptography API (#20), closes #21, #18

Contributors

3.1.0 - 2023-03-29

  • chore: Use ES6 imports for crypto-js to reduce bundle size

Contributors

3.0.0 - 2022-03-28

  • feat!: depend on crypto-js for node/browser compatibility. Using Typescript with Parcel.
// commonjs
const pkceChallenge = require("pkce-challenge").default;

// es modules
import pkceChallenge from "pkce-challenge";

2.2.0 - 2021-05-19

Added

  • generateChallenge exported from index

Contributors

2.1.0 - 2019-12-20

Added

  • verifyChallenge exported from index

Changed

  • code/comment formatting
  • refactored random function

2.0.0 - 2019-10-18

Added

  • CHANGELOG
  • typescript definition
  • Cryptographically secured method for generating code verifier
  • Method for base64 url encoding

Removed

  • generateVerifier export from index
  • generateChallenge export from index
  • base64url npm dependency
  • randomatic npm dependency

Contributors