我正在使用this tutorial作为指南,从我的后端实现Azure Notification Hub的注册。我的应用程序将需要身份验证,但用户可以注销并使用其他帐户重新登录。 RegistrationId应该基于独特设备还是用户和设备的组合?换句话说,每次注销时我应该清除RegistrationId吗?用户何时注销,以另一个用户身份重新登录,然后以原始用户身份重新登录,我们是否应该创建新的RegistrationId或者仍然使用原始用户?
答案 0 :(得分:2)
GCM documentation for registering client apps声明如下:
开发人员永远不应该注销客户端应用程序作为注销或机制 用于在用户之间切换,原因如下:
- 注册令牌与特定登录无关 用户。如果客户端应用程序取消注册然后重新注册,则应用程序可以 收到相同的注册令牌或不同的注册令牌。
- 取消注册和重新注册每个最多可能需要五分钟 传播。在此期间,由于此消息可能会被拒绝 未注册的状态,消息可能会转到错误的用户。
确保邮件发送给目标用户:
- 应用服务器可以维护当前用户与用户之间的映射 注册令牌。
- 然后客户端应用可以检查以确保这一点 它收到的消息与登录用户匹配。
这也适用于其他推送通知服务,例如的iOS。
推送通知服务注册可识别单个设备上的特定应用。
使用Azure通知中心,您可以在单个设备上为特定应用程序进行技术上的多个Azure Notification HUb注册,甚至可以在登录和注销时注册和取消注册(仅限Azure通知中心,而不是平台特定的推送通知系统),但这容易出错,有更好的方法:
修改标签也在the tutorial you linked中描述。