我正在尝试使用web-push为我的web应用程序(Angular 8)设置通知。
我已经使用angular service worker成功地注册了用户的端点、p256dh和auth。它已经在数据库中了。
我的后端是Laravel,然而,在设置了所有不起作用的东西之后。因此,在排除后端故障之前,我尝试使用postman设置一个“原始”请求,以测试通知本身是否正常工作。
(我在前端遵循的教程:https://blog.angular-university.io/angular-push-notifications/)
下面是postman上的json:
{
"to": "<HERE GOES THE USERS p256dh>",
"notification": {
"body": "Hello",
"title": "This is test message."
}
}Url:~~POST ~~
具有以下标头:
Authorization: key=4uAH6X9MLTQWYWuDuUjBDk5P8OHPmFLWF9FZJeDAZMo (I've tried users auth code and also my VAPID_PRIVATE_KEY
Content-Type: application/Json我得到的回应如下:
sender is not authenticated.编辑:已尝试:https://fcm.googleapis.com/fcm/send和got:
Invalid (legacy) Server-key delivered or Sender is not authorized to perform request.我做错了什么?即使在浏览器关闭的情况下,预期的结果也会是通知。
(我正在测试o locahost并通过angular-http-server提供服务,使用ng build --prod构建)
发布于 2019-10-24 14:32:50
正如fcm响应所指示的,看起来您正在使用旧服务器密钥进行身份验证。旧的服务器密钥比新的服务器密钥短得多。
要解决此问题,请使用服务器密钥(如果已有),或者单击“添加服务器密钥”创建一个密钥,并在授权标头中使用该密钥而不是旧的服务器密钥。
请参阅此image以供参考。
发布于 2019-10-24 19:04:15
我已经使用npms send-notification进行了测试:
web-push send-notification --endpoint=<url> [--key=<browser key>] [--auth=<auth secret>] [--payload=<message>] [--ttl=<seconds>] [--vapid-subject=<vapid subject>] [--vapid-pubkey=<public key url base64>] [--vapid-pvtkey=<private key url base64>] 现在是后端的问题,我将尝试修复它。
https://stackoverflow.com/questions/58531876
复制相似问题