UNPKG

react-native-social-x-auth

Version:

A lightweight React Native library for authenticating with X (formerly Twitter) using OAuth 2.0 with PKCE. Provides a secure and seamless login experience through Android Custom Tabs and iOS Safari ViewController. Built specifically for integrating X auth

28 lines (27 loc) 951 B
"use strict"; import { sha256 } from '@noble/hashes/sha2'; import base64 from 'react-native-base64'; function generateCodeVerifier(length = 43) { const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~'; let verifier = ''; for (let i = 0; i < length; i++) { verifier += possible.charAt(Math.floor(Math.random() * possible.length)); } return verifier; } function base64UrlEncode(bytes) { const base64Str = base64.encodeFromByteArray(bytes); return base64Str.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); } function generateCodeChallenge(verifier) { try { const data = new TextEncoder().encode(verifier); const hash = sha256(data); return base64UrlEncode(hash).replace(/=/g, ''); } catch (error) { console.error('Error in generateCodeChallenge:', error); throw error; } } export { generateCodeVerifier, generateCodeChallenge }; //# sourceMappingURL=pkceUtils.js.map