我还没有在我的应用中实现推送通知。我的理解是,在设备上运行的应用程序必须请求令牌,然后将此令牌发送到我的服务器,并且每当我想将消息发送到设备/应用程序时,我的服务器必须将此令牌传递给Apple。
特定于应用的请求推送令牌,还是设备上的所有应用共享令牌?
我有什么方法可以验证设备发送到我服务器的令牌是否确实由我的应用中的请求生成了?
我担心恶意应用可能会向我的服务器发送一个有效令牌而非我应用请求的令牌。这会欺骗我的服务向该设备/应用程序发送推送通知。
我理解这是不太可能出现的情况。我正在尝试创建一种机制来验证当我的应用程序向我的服务器发送信息时,我确实在谈论我的应用程序的实例,而不是一些流氓客户端。推送通知似乎是实现此目的的可能方式。
答案 0 :(得分:10)
特定于应用的请求推送令牌,还是设备上的所有应用共享令牌? 请求的令牌不是特定于您的应用程序和每个设备。
我有什么方法可以验证设备发送到我服务器的令牌是否确实是由我的应用中的请求生成的? 有一个苹果服务,您可以在其中查询并查明令牌是否“仍然有效”,这用于诸如当用户删除您的应用程序并且其令牌无效时,您可以查询服务并检查是否令牌仍然有效,如果没有从数据库中删除...所以你也可以使用这个服务来确保给出的任何令牌都是有效的......无论如何,如果你试图推送无效令牌,我怀疑什么都不会发生。 ..
希望这会有所帮助
答案 1 :(得分:-1)
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)dToken {
NSString *strToken = [NSString
stringWithFormat:@"%@",dToken];
NSLog(@"deviceToken is : %@",strToken);
strToken = [strToken stringByReplacingOccurrencesOfString:@" " withString:@""];
strToken = [strToken stringByReplacingOccurrencesOfString:@"<" withString:@""];
strToken = [strToken stringByReplacingOccurrencesOfString:@">" withString:@""];
NSLog(@"deviceToken is : %@",strToken);
}