UNPKG

@pedwise/next-firebase-auth-edge

Version:

Next.js 13 Firebase Authentication for Edge and server runtimes. Dedicated for Next 13 server components. Compatible with Next.js middleware.

61 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createTenant = exports.filterStandardClaims = exports.STANDARD_CLAIMS = void 0; exports.STANDARD_CLAIMS = [ "aud", "auth_time", "email", "email_verified", "exp", "firebase", "iat", "iss", "name", "phone_number", "picture", "sub", "uid", "user_id", ]; const filterStandardClaims = (obj = {}) => { const claims = {}; Object.keys(obj).forEach((key) => { if (!exports.STANDARD_CLAIMS.includes(key)) { claims[key] = obj[key]; } }); return claims; }; exports.filterStandardClaims = filterStandardClaims; const createTenant = ({ decodedToken, token = null, } = {}) => { // The token value should only be provided with the decoded admin value. if (token && !decodedToken) { throw new Error('The "token" value can only be set if the "decodedToken" property is defined.'); } if (decodedToken) { const customClaims = (0, exports.filterStandardClaims)(decodedToken); const { uid, email, email_verified: emailVerified, phone_number: phoneNumber, picture: photoURL, name: displayName, } = decodedToken; return { uid, email: email !== null && email !== void 0 ? email : undefined, customClaims, emailVerified: emailVerified !== null && emailVerified !== void 0 ? emailVerified : false, phoneNumber: phoneNumber !== null && phoneNumber !== void 0 ? phoneNumber : undefined, displayName: displayName !== null && displayName !== void 0 ? displayName : undefined, photoURL: photoURL !== null && photoURL !== void 0 ? photoURL : undefined, token, }; } return { uid: "", email: undefined, customClaims: {}, emailVerified: false, phoneNumber: undefined, displayName: undefined, photoURL: undefined, token: null, }; }; exports.createTenant = createTenant; //# sourceMappingURL=tenant.js.map