来自OAuth2游乐场的Firebase承载令牌
我正在尝试测试我的应用程序,该应用程序使用Firebase,通过postman进行推送通知 我正在专门测试Http v1api 我需要弄清楚的是如何在Postman中使用OAuth2令牌,虽然我不确定如何操作,但我应该能够在上完成来自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控制台下载的
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请求中,用相关值替换以下占位符:
是Firebase项目ID,您可以从MY_PROJECT_ID
是要向其发送消息的设备的注册令牌。有关web客户端,请参阅MY_DEVICE_TOKEN
是您使用上述步骤从OAuth2游乐场获得的OAuth2访问令牌MY_ACCESS_TOKEN
由于它只调用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