added vapid id api
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
import webPush from "web-push";
|
||||||
|
|
||||||
|
export default defineEventHandler(() => {
|
||||||
|
// Generate once and set in .env for production
|
||||||
|
if (process.env.NODE_ENV === "production") {
|
||||||
|
if (
|
||||||
|
!process.env.VAPID_PRIVATE_KEY ||
|
||||||
|
!process.env.NUXT_PUBLIC_VAPID_KEY
|
||||||
|
) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 500,
|
||||||
|
statusMessage: "VAPID keys not configured in production",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return { publicKey: process.env.NUXT_PUBLIC_VAPID_KEY };
|
||||||
|
}
|
||||||
|
|
||||||
|
// Development: Generate and reuse
|
||||||
|
if (!process.env.VAPID_PRIVATE_KEY) {
|
||||||
|
const vapidKeys = webPush.generateVAPIDKeys();
|
||||||
|
process.env.VAPID_PRIVATE_KEY = vapidKeys.privateKey;
|
||||||
|
process.env.NUXT_PUBLIC_VAPID_KEY = vapidKeys.publicKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
return { publicKey: process.env.NUXT_PUBLIC_VAPID_KEY };
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user