fxa-auth-server/scripts/gen_vapid_keys.js

45 строки
1.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* scripts/gen_valid_keys.js creates public and private keys suitable for
use with VAPID in push notifications.
Usage:
./scripts/gen_valid_keys.js [filename]
The filename will default to:
./config/vapid-keys.json
If this file already exists, this script will show an error message
and exit. You must remove the file if you want to generate a new
keypair.
*/
'use strict'
const fs = require('fs')
const config = require('../config')
const webpush = require('web-push')
const vapidKeysFile = config.get('vapidKeysFile')
var fileExists = fs.existsSync(vapidKeysFile)
if (fileExists) {
console.log('keys file already exists')
process.exit()
}
console.error('Generating key for VAPID')
var keys = webpush.generateVAPIDKeys()
fs.writeFileSync(vapidKeysFile, JSON.stringify({
privateKey: keys.privateKey.toString('base64'),
publicKey: keys.publicKey.toString('base64')
}))
console.error('Done:', vapidKeysFile)