react-native-pkce-challenge icon indicating copy to clipboard operation
react-native-pkce-challenge copied to clipboard

Proof Key for Code Exchange (PKCE) challenge generator for React Native.

React Native PKCE Challenge

Package version MIT license PRs Welcome

Proof Key for Code Exchange (PKCE) challenge generator for React Native.

API Compatibility

Platform Support
iOS 🟢
Android 🟢
Web 🟢
Windows 🟡
macOS 🟢
Expo 🟢
Node.js 🟢

Installation

yarn add react-native-pkce-challenge
npx pod-install ios # iOS Only
npx pod-install macos # macOS Only

Usage

Generate PKCE Challenge Pair

import pkceChallenge from 'react-native-pkce-challenge';

const challenge = pkceChallenge();

The constant challenge will hold an object like the following:

{
  codeChallenge: 'XsRstqNrXT76Iop3uMoyyCQmaGthJbKKJwXBSoQXaRk',
  codeVerifier: 'OZOHUwLddiPyTFJulnUYnU9jsf7oyULflbFpwj40bE9S77iaeisGvzvaVvvPE7oO-xaV4skxwKDFBBV7JofVNxCgUSauqUDVcVjggE4-M6zthVUmeUrSAHatmIBm_P0_'
}

Generate Challenge

import { generateChallenge } from 'react-native-pkce-challenge';

generateChallenge(challenge.codeVerifier) === challenge.codeChallenge; // true

Verify Challenge

import { verifyChallenge } from 'react-native-pkce-challenge';

verifyChallenge(challenge.codeVerifier, challenge.codeChallenge); // true
verifyChallenge(challenge.codeVerifier, 'invalid challenge'); // false

Upgrading

See UPGRADING.md

Changelogs

See CHANGELOGS.md

License

Copyright © 2023 David Angulo, released under the MIT license, see LICENSE.