У меня есть редкий сценарий, когда существует вероятность того, что на одном устройстве и в одной комбинации браузеров могут входить и выходить несколько пользователей.
Например, на домашнем ноутбуке с использованием Chrome пользователь 1 можетвойдите в систему и закройте браузер (время аутентификации истекло, поэтому использование будет отключено через n минут бездействия) или выйдите из системы.Затем пользователь 2 может войти в систему.
Я планирую использовать push-уведомления Pushy для отправки push-уведомлений пользователей, но я нажал на блокировщик.
Следующий код используется для регистрации Pushy:
Pushy.register({ appId: 'app-id' }).then(function (deviceToken) {
// Print device token to console
console.log('Pushy device token: ' + deviceToken);
// Send the token to your backend server via an HTTP GET request
//fetch('https://your.api.hostname/register/device?token=' + deviceToken);
// Succeeded, optionally do something to alert the user
}).catch(function (err) {
// Handle registration errors
console.error(err);
});
Теперь, когда пользователь 1 входит в систему, генерируется маркер устройства abc123
.Внутренне я сохраню этот маркер устройства для пользователя 1 и смогу успешно отправить push-уведомление.Если пользователь 1 вышел из системы и пользователь 1 вошел в систему, новый токен устройства не зарегистрирован, поэтому я могу назначить токен устройства пользователю 2.
Если я попытаюсь очистить все локальное хранилище Pushy, тосоздается новый маркер устройства def456
, и я могу успешно отправить push-уведомление на def456
, но также могу отправить push-уведомление на abc123
.
Если я отменил регистрацию работника службы и затем попыталсярегистрируя Pushy с помощью приведенного выше кода, генерируется новый маркер устройства ghi789
, и я могу успешно отправить push-уведомление на ghi789
.Теперь я не могу отправить push-уведомления на abc123
и def456
.
Я даже пытался обновить значения локального хранилища Pushy вручную, но это не работает.
IЯ немного сбит с толку, как справиться с этим сценарием, чтобы пуш-уведомление получал только зарегистрированный в данный момент пользователь.
Нужно ли использовать области?Если да, как я могу использовать области.Нужно ли обновлять работника службы?Если да, то как мне добиться этого, так как я думаю, что Push обрабатывает регистрацию сервисного работника.Есть ли что-то еще, что мне не хватает?
Должен ли я отменить регистрацию работника службы, когда пользователь выходит из системы, чтобы при повторной регистрации пользователя в системе работника службы снова создавался новый маркер устройства Pushy?