UNPKG

next-firebase-auth-edge

Version:

Next.js Firebase Authentication for Edge and server runtimes. Compatible with latest Next.js features.

41 lines (40 loc) 1.27 kB
import { base64url } from 'jose'; import { RotatingCredential } from '../../../auth/rotating-credential.js'; export class MultipleCookieBuilder { cookieName; credential; constructor(cookieName, signatureKeys) { this.cookieName = cookieName; this.credential = new RotatingCredential(signatureKeys); } async buildCookies(value) { const signature = await this.credential.createSignature(value); const result = [ { name: `${this.cookieName}.id`, value: value.idToken }, { name: `${this.cookieName}.refresh`, value: value.refreshToken } ]; if (value.customToken) { result.push({ name: `${this.cookieName}.custom`, value: value.customToken }); } if (value.metadata && Object.keys(value.metadata).length > 0) { result.push({ name: `${this.cookieName}.metadata`, value: base64url.encode(JSON.stringify(value.metadata)) }); } result.push({ name: `${this.cookieName}.sig`, value: signature }); return result; } }