繁体   English   中英

.net-exeption中使用firebase admin SDK验证令牌:“ $ ID令牌中的段数不正确。”

[英]Verifying token using firebase admin SDK in .net - exeption: 'Incorrect number of segments in $ID token.'

我正在构建一个Web.API,以通过Firebase向iOS应用程序发送通知。 我已经将Firebase管理SDK集成到了.net项目中。 根据https://firebase.google.com/docs/reference/admin/dotnet ,我实现了以下代码。 但是,当我调用“ VerifyIdTokenAsync”时,出现错误。 错误是“ $ ID令牌中的段数不正确”。

 var defaultApp = FirebaseApp.Create(new AppOptions()
            {
                Credential = GoogleCredential.FromFile(strFilePath),
            });

            // Retrieve services by passing the defaultApp variable...
            var defaultAuth = FirebaseAuth.GetAuth(defaultApp);

            FirebasVerifyIdTokenAsynceToken decodedToken = await defaultAuth.(deviceToken);
            string uid = decodedToken.Uid;

我在线检查了几个帖子和文档,但是都引用相同的代码,没有更多的故障排除信息。 请帮忙。

ID令牌(这是JWT的一种)必须具有3个段,并用句点分隔: header.body.signature 上面的错误消息是说,您作为ID令牌传递的字符串还有其他一些段数。 因此,您输入的字符串根本不是ID令牌。

谢谢Hiranya Jayathilaka。 你是对的。 我使用的是APNS令牌,而不是注册令牌ID。 我紧跟本文以获取注册令牌ID。 我们需要向

https://iid.googleapis.com/iid/v1:batchImport

将标题设置为

内容类型:application / json授权:key = YOUR_SERVER_KEY

身体将包含以下内容

{“ application”:YOUR_APPLICATION_BUNDLE_ID,“ sandbox”:false,“ apns_tokens”:[YOUR_APNS_TOKEN,]}

另外,当您致电https://fcm.googleapis.com/fcm/send并将推送通知发送到单个设备时,应使用以下JSON

string json = "{\"to\": \"" + regID + "\",\"notification\": {\"title\": \"New deal\",\"body\": \"20% deal!\"},\"priority\":10}";

如果您要将推送通知发送到多个设备,请使用以下JSON

string json = "{\"registration_ids\": [\"" + regID1 + "\", \"" + regID2 + "\" \"" + regIDN + "\"],\"notification\": {\"title\": \"New deal\",\"body\": \"20% deal!\"},\"priority\":10}";

最后,我的手机上有推送通知!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM