在JS/Node.js中安全存储Web Push通知的订阅信息,可以使用以下解决方法:
const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
// 创建数据库连接
MongoClient.connect('mongodb://localhost:27017', { useNewUrlParser: true })
.then(client => {
const db = client.db('webpush');
const subscriptions = db.collection('subscriptions');
// 保存订阅信息
const saveSubscription = async (subscription) => {
try {
await subscriptions.insertOne(subscription);
console.log('Subscription saved');
} catch (err) {
console.error('Error saving subscription', err);
}
};
// 示例调用保存订阅信息的函数
const subscription = { /* 订阅信息对象 */ };
saveSubscription(subscription);
})
.catch(err => {
console.error('Error connecting to database', err);
});
const fs = require('fs');
const path = require('path');
const subscriptionsDir = path.join(__dirname, 'subscriptions');
// 创建存储目录(如果不存在)
if (!fs.existsSync(subscriptionsDir)) {
fs.mkdirSync(subscriptionsDir);
}
// 保存订阅信息
const saveSubscription = async (subscription) => {
try {
const filePath = path.join(subscriptionsDir, 'subscription.json');
fs.writeFileSync(filePath, JSON.stringify(subscription));
console.log('Subscription saved');
} catch (err) {
console.error('Error saving subscription', err);
}
};
// 示例调用保存订阅信息的函数
const subscription = { /* 订阅信息对象 */ };
saveSubscription(subscription);
这些解决方法可以根据你的需求进行调整和扩展。注意要确保在存储订阅信息时进行适当的错误处理和安全验证。