0

我目前正在阅读有关推送通知的developers.google.com。保存推送订阅

而且我已经得到推送订阅对象。
但我不确定保存它的最佳方法。

下面是从谷歌

function subscribeUserToPush() { 
    return getSWRegistration().then(function(registration) { 
     const subscribeOptions = { 
      userVisibleOnly: true, 
      applicationServerKey: urlBase64ToUint8Array('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') 
     }; 

     return registration.pushManager.subscribe(subscribeOptions); 
    }).then(function(pushSubscription) { 
     console.log('Received PushSubscription: ', JSON.stringify(pushSubscription)); 
     return pushSubscription; 
    }); 
} 

的代码,我有一个数据库,与用户的表,所以我应该创建一个新的列在那里,存储字符串化JSON对象申购呢?

或更好地创建一个新的订阅表?
例如这样的表?

user_id |端点| p256dh | auth

用户可以有多个订阅吗?在这种情况下,我认为首选专用的订阅表。

关于VAPID键,我应该把公共权限放在上面的代码中吗?然后将私人店铺保存在安全的地方?

谢谢。

回答

1

如果用户通过多个设备(例如移动设备和桌面设备)使用您的网站,则用户可以拥有多个订阅。

关于VAPID,是的,您的公钥可以在JavaScript客户端代码中。你的私钥只能被你知道,所以应该放在服务器上的某个安全的地方。