45 строки
1.2 KiB
JavaScript
Executable File
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)
|