FCM是否支持通过后端服务器注册安卓应用以接收设备端FCM通知?
FCM是否允许开发者从后端服务器侧完成安卓应用注册,让终端安卓应用正常接收FCM通知?
明确结论:不允许,不存在纯后端侧完成FCM注册的可行方案。
- FCM用来定位目标设备的合法注册令牌,必须由终端上安装的安卓应用通过集成的FCM SDK在本地生成。生成令牌的过程需要设备自带的Google Play服务完成设备身份、应用签名的合法性校验,这部分校验逻辑从来没开放过给第三方后端的调用入口,后端根本绕不开终端直接申请到有效令牌。
- 后端在整个FCM注册流程里,唯一能做的就是存储令牌:终端SDK生成有效注册令牌之后,应用自己把这个令牌传到开发者的后端服务器,后续后端要发消息的时候,拿着这个提前存好的合法令牌调用FCM的下发接口,才能把消息送到对应设备上。
- FCM的注册令牌是和「具体设备+设备上安装的对应应用实例」强绑定的,生成令牌需要的设备侧Google服务认证凭据、应用运行态的校验信息只有终端本地能拿到,后端根本伪造不了这些参数,就算硬写脚本模拟终端请求刷出来所谓的“令牌”,也完全没法用来收消息。
别想着走捷径靠后端模拟终端请求批量刷注册令牌,这类操作会触发FCM的安全风控,轻则拿到的令牌全是无效的,重则直接限制你应用的FCM消息下发权限。
内容的提问来源于stack exchange,提问作者Nishant Sharma
相关产品推荐
相关产品推荐

