Как стать автором
Обновить

Комментарии 12

Если не серверный рендеринг, как защитить " apiKey: "...","?

Похоже что никак. В предыдущих версиях кстати достаточно было на фронт отправлять только messageSenderId
Странно что это параметр не считатется секретным. Конечно не зная токена я не смогу отправить сообщение на конкретного клиента. Но зато я смогу направить на любой топик. Не удивлюсь что у 99% сайтов есть топик news

Спасибо за вопрос. В тесте статьи была неточность. Ключ api веб-приложения — это публичный ключ и его можно публиковать. Отправлять же сообщения нужно при помощи серверного ключа который имеет другой вид и на другой вкладке находится

так какая разница?
при запросе к файрбейс, я просто смотрю запрос и вижу всё что есть токены\ключи и т.д.
Беру их и делаю спам атаку.
Причем если передается какойн ибудь userid то делаю перебором какие нибудь фейкс рассылки

Не совсем понял механизм такой атаки. Я имею публичные ключи firebase. При помощи этих ключей я могу сделать ровно одно действие — получить токен. Чтобы отправит сообщение нужно знать приватный ключ сервера который в конфиг публичный не входит.

Async/Await для дураков?) Одни .then везде

Корелляция между количеством серого вещества и количеством async/await в настоящее время не обнаружена.

Как бы читаемость кода гораздо лучше. Не зря async/await во многих языках появился за долго до js'a. Колбеки давно забытое прошлое, но увы видать не для всех. Да да, цепочки .then это тоже колбэки.

Сферический код в вакууме с асинками более читаемый. Реальный код учитывающий исключительные ситуации быстро тонет в блоках try/catch.
И не только это причина. Асинки ближе к императивному стилю программирования а промисы к функциональному. А если еще учесть что классические нодовские кэлбэки близки к событийноориентированному стилю программирования, то становится ясно что все три направления еще долго будут сосуществовать параллельно.

Ну не знаю, не вижу проблем в реальном асинхронном коде с async/await завернутом в try/catch. Тем более есть разные вариации, в том числе


await someMethod().catch(console.error);


Если не нужно останавливать выполнение кода ниже.
Зато он написан сверху в низ, читается и воспринимается легко и очевидно спустя время. В то время как функциональщина после того как код был написан теряет в читаемости, да и колбэк хэл это мягко говоря на любителя, который живёт далеким прошлым и не воспринимает настоящее время.

Safari молча стоит в сторонке.

Подскажите, а
messaging.onMessage(function(payload) {
const data = { ...payload.notification, ...payload.data };
const notificationTitle = data.title;
const notificationOptions = {
body: data.body,
icon: data.icon,
image: data.image,
click_action: data.click_action,
requireInteraction: true,
data};
new Notification(payload.notification.title, payload.notification);
});


его надо прописывать в service worker?@apapacy
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории