#!/usr/bin/env node import {generateSignableJwt, generateSigningJwkPair, jwkExport} from '#common/crypto/jwks' import {IdentBrand, RealmBrand} from '#realm/protocol/index' async function generateRegistrationJWT(realm?: string) { const keypair = await generateSigningJwkPair() const realmid = realm ?? RealmBrand.generate() const identid = IdentBrand.generate() const payload = { iss: identid, aud: realmid, msg: 'preauth.register', pubkey: await jwkExport.parseAsync(keypair.publicKey), } const jwt = await generateSignableJwt(payload).setIssuedAt().setExpirationTime('1m').sign(keypair.privateKey) console.log('Generated Preauth JWT:') console.log(jwt) console.log('\nPayload:') console.log(JSON.stringify(payload, null, 2)) } // this is just a test // do not be alarmed // this is only a test generateRegistrationJWT('realm-n7-qM0rOzsJ8N-iF').catch(console.error)