How to generate VAPID keys with Node.js

The VAPID (Voluntary Application Server Identification) keys are used to authenticate push messages sent from a server to a client. They are essential for sending push notifications via the Web Push protocol, as they provide a way to verify the identity of the message sender. In this article, we will see how to generate VAPID keys using Node.js.

Before you start, make sure you have:

  • Node.js installed on your machine. You can download it from nodejs.org.
  • A text editor such as Visual Studio Code.

To generate the VAPID keys, we will use the web-push package, which facilitates sending push notifications and managing VAPID keys.

Install web-push:


npm install web-push --save

Create a JavaScript file for your script, for example, generateVapidKeys.js, and open it with your text editor. Add the following code to generate the VAPID keys:


const webPush = require('web-push');

// Generate the VAPID keys
const vapidKeys = webPush.generateVAPIDKeys();

console.log('VAPID Public Key:');
console.log(vapidKeys.publicKey);

console.log('VAPID Private Key:');
console.log(vapidKeys.privateKey);

Now that you have generated your VAPID keys, you can use them to authenticate your push messages. For example, you can configure web-push to use these keys as follows:


const webPush = require('web-push');

const vapidKeys = {
  publicKey: 'BO1F2c3fghIJKLMNOPQRSTUVWXYZ1234567890abcdefg',
  privateKey: 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEF'
};

webPush.setVapidDetails(
  'mailto:you@example.com',
  vapidKeys.publicKey,
  vapidKeys.privateKey
);

Conclusion

In this article, we saw how to generate VAPID keys using Node.js and the web-push package. These keys are essential for sending secure and authentic push notifications. You are now ready to use these keys in your push notification projects.

Back to top