来自OAuth2游乐场的Firebase承载令牌

来自OAuth2游乐场的Firebase承载令牌,firebase,oauth-2.0,firebase-cloud-messaging,Firebase,Oauth 2.0,Firebase Cloud Messaging,我正在尝试测试我的应用程序,该应用程序使用Firebase,通过postman进行推送通知 我正在专门测试Http v1api 我需要弄清楚的是如何在Postman中使用OAuth2令牌,虽然我不确定如何操作,但我应该能够在上完成 我有我从firebase控制台下载的privatkey.json文件,我只需要知道如何使用它来获取令牌,我将添加该令牌作为POST请求的承载授权头我能够通过FCM v1 HTTP API发送消息,方法是在 授权后,我将授权代码交换为刷新和访问令牌 然后,我使用FC

我正在尝试测试我的应用程序,该应用程序使用Firebase,通过postman进行推送通知

我正在专门测试Http v1api

我需要弄清楚的是如何在Postman中使用OAuth2令牌,虽然我不确定如何操作,但我应该能够在上完成


我有我从firebase控制台下载的
privatkey.json
文件,我只需要知道如何使用它来获取令牌,我将添加该令牌作为POST请求的承载授权头

我能够通过FCM v1 HTTP API发送消息,方法是在

授权后,我将授权代码交换为刷新和访问令牌

然后,我使用FCM将生成的访问令牌传递到调用中:

curl -X POST -H "Authorization: Bearer MY_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"message":{
  "notification": {
    "title": "FCM Message",
    "body": "This is an FCM Message",
  },
  "token": "MY_DEVICE_TOKEN"
  }
}' https://fcm.googleapis.com/v1/projects/MY_PROJECT_ID/messages:send
在上述CURL请求中,用相关值替换以下占位符:

  • MY_PROJECT_ID
    是Firebase项目ID,您可以从
  • MY_DEVICE_TOKEN
    是要向其发送消息的设备的注册令牌。有关web客户端,请参阅
  • MY_ACCESS_TOKEN
    是您使用上述步骤从OAuth2游乐场获得的OAuth2访问令牌

由于它只调用OAuth2标记,因此可能会让人困惑。实际上,它首先通过调用
new google.auth.JWT(…)
生成一个自签名JWT(JSON Web令牌)。这涉及到下载私钥,并通过JWT库在本地生成JWT


然后将自签名JWT传递给
jwtClient.authorize(…)
,后者将返回包含
访问\u令牌的令牌。后者是一个OAuth2访问令牌,与我们上面得到的类似。

我创建了一个小型的,包括一个postman集合和环境,以及一个nodejs项目,该项目使用下载的
service key.json
生成一个访问令牌,解决了我上面的问题。它不像只使用邮递员(对我来说这似乎是不可能的)那么简单,但它工作得足够好,因为访问令牌可以使用大约一个小时。

这是否意味着如果有人能够检索到注册的设备ID和我的项目ID,他们可以使用OAuth2 Playway绕过将存在于生产环境中的service-key.json文件来发送消息?基于访问其他功能,我的期望是,上述流程仅在您是Firebase项目的成员时才有效。
curl -X POST -H "Authorization: Bearer MY_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"message":{
  "notification": {
    "title": "FCM Message",
    "body": "This is an FCM Message",
  },
  "token": "MY_DEVICE_TOKEN"
  }
}' https://fcm.googleapis.com/v1/projects/MY_PROJECT_ID/messages:send