dirigera
Version:
A TypeScript client for IKEA's DIRIGERA smart home hub
13 lines (12 loc) • 535 B
JavaScript
import crypto from 'node:crypto';
const CODE_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.split('');
const CODE_LENGTH = 128;
export const CODE_CHALLENGE_METHOD = 'S256';
export const generateCodeVerifier = () => {
return [...Array(CODE_LENGTH)]
.map(() => CODE_CHARACTERS[Math.floor(Math.random() * CODE_CHARACTERS.length)])
.join('');
};
export const calculateCodeChallenge = (codeVerifier) => {
return crypto.createHash('sha256').update(codeVerifier).digest('base64url');
};