web_push
45 sites
No security coverage
Description
The module manage send of notification (desktop / mobile / ...) using the Push API.
The module allow you to:
- Configure a web push notification service
- Manage the list of subscriber
- Send notifications
- Display a bloc to subscribe and unsubscribe (Web Push block)
- Use an other Service Worker, for example if you use the PWA module
The module doesn't manage:
- Automatic push send, you have to define your own rules and use the service given, see example below
- Automatic deletion of invalid subscribe
- Protection against CSRF/XSRF (https://developer.mozilla.org/en-US/docs/Web/API/Push_API)
Web Push use the Push API to manage subscribe / unsubscribe to Push notification.
The module use the library minishlink/web-push to send the notifications. This library doesn't use a Third Party.
Requirements
- php >=8.0
- minishlink/web-push
Installation
- Install and enable this module like any other Drupal module.
Configuration
- Configure the Authentication (VAPID) at the page /admin/config/services/web-push/VAPID, 2 methods :
- use auto generate
- generate it manually, more details
- Configure the default options /admin/config/services/web-push/default-settings
- Give the permission to Access POST on REST for Web Push subscription resource
- Clear your cache
Security advice
Security optimization:
- Rate limit on the POST request ?
- Flood control can be enable : /admin/config/services/web-push/security
- Avoid CrossDomain (CORS), server configuraton ?
- https://www.drupal.org/project/seckit
Example
\Drupal::service('web_push.manager')->sendNotification(
'Notification Title',
'Notification Body',
'noticiation-redirect-url',
'notification-icon-url',
\Drupal\web_push\Service\WebPushSender::URGENCY_HIGH
);
Sponsor
Agence du Numérique en Santé (ANS)