dirigera
Version:
A TypeScript client for IKEA's DIRIGERA smart home hub
19 lines (15 loc) • 540 B
text/typescript
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: string) => {
return crypto.createHash('sha256').update(codeVerifier).digest('base64url')
}