@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
JavaScript
;
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