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客戶端代碼中。你的私鑰只能被你知道,所以應該放在服務器上的某個安全的地方。