Ios 如何防止重新安装后向应用发送推送通知?

Ios 如何防止重新安装后向应用发送推送通知?,ios,iphone,push-notification,apple-push-notifications,token,Ios,Iphone,Push Notification,Apple Push Notifications,Token,由于iOS 9应用程序在重新安装应用程序后更改了apns令牌。 但iOS 8和iOS 7不能做到这一点 如何使用iOS 8和iOS 7区分下一种情况 用户安装了一个应用程序 用户启动了应用程序,并允许应用程序中的推送通知。(我拿到了一些代币) 用户已登录/注册。(I已与注册用户连接令牌) 用户已删除该应用程序 用户安装了应用程序,启动了一次,并允许推送通知。(获得相同的令牌,) 执行这些操作后,此未注册用户将收到有关其帐户中某些操作的通知,而无需登录。 如果是银行/金融应用程序,则会影响注册用户

由于iOS 9应用程序在重新安装应用程序后更改了apns令牌。 但iOS 8和iOS 7不能做到这一点

如何使用iOS 8和iOS 7区分下一种情况

  • 用户安装了一个应用程序
  • 用户启动了应用程序,并允许应用程序中的推送通知。(我拿到了一些代币)
  • 用户已登录/注册。(I已与注册用户连接令牌)
  • 用户已删除该应用程序
  • 用户安装了应用程序,启动了一次,并允许推送通知。(获得相同的令牌,)
  • 执行这些操作后,此未注册用户将收到有关其帐户中某些操作的通知,而无需登录。 如果是银行/金融应用程序,则会影响注册用户的安全

    如何防止这种情况发生?

    您可以拨打
    [[UIApplication sharedApplication]注销远程通知]

    -应用程序:使用选项完成启动:
    方法。然后,当用户登录时,注册远程通知


    但无论如何,如果卸载并再次安装应用程序,它将不会收到推送通知,直到调用
    -registerForRemoteNotifications
    ,并且只有在用户身份验证后才能调用此方法。即使令牌和前一个令牌相同,它也将与此新用户关联,您的服务器应处理此问题。

    谢谢您的回答!我改变了行动的顺序
    registerForRemoteNotifications
    在用户身份验证之前被调用,因为它需要新闻和营销人员。对于这种情况,您有什么建议吗?如果您的通知不是特定于用户的,那么问题出在哪里?当用户未注册时,我只想发送新闻/营销人员。但是,如果用户已签名,我希望发送特定于用户的信息。然后,在
    应用程序:didFinishLaunchingWithOptions
    方法中,当您注册远程通知并将其发送到服务器时,服务器应从此令牌中删除以前关联的用户,并仅发送新闻/营销人员。在用户身份验证之后,只需在您的登录请求中再次发送该令牌。现在,您的服务器知道,此令牌是针对新登录的用户的,并且将该令牌与此用户关联,并且不仅将发送新闻/营销人员,还将发送其他推送。是的,有解决此问题的方法。但这种方法通过向服务器发送请求来移除随机令牌,从而为攻击打开了空间。我刚才认为有一些操作序列,它们迫使设备/APN重新生成令牌。或者有另一种更优雅的方式来逃避可能的攻击并处理这种情况。非常感谢你的帮助!(也许你应该在你的回答中加上上面的注释)。