验证令牌和Gcm注册ID

时间:2015-08-24 12:52:30

标签: android authentication google-cloud-messaging auth-token

由于this google guide,我能够收到GCM注册ID(用于推送通知),并将reg.id存储在数据库中,无需身份验证,一切正常。 我使用web api 2,oauth 2身份验证和客户经理。

1)用户登录应用程序,App为用户创建帐户      - 或者如果帐户存在,则自动签署用户。
2)App获取身份验证令牌,如果过期则通过Volley字符串请求检索它 3)如果注册,应用程序检查客户经理的UserData。之前收到的身份证如果不是App请求注册。来自GCM的id并通过Volley将其发布到服务器(此处需要AuthToken),App在帐户中设置用户数据。我已经收到了。

我的应用程序的上述流程目前只存在于我的脑海中,我有一些问题。

首先,我如何首先获取身份验证令牌,然后根据Guide转到步骤3,即IntentService。

其次,我们说我们设法做了第一个问题。如果用户从其他设备登录到他的帐户会怎样?我应该更新他的注册表。他的新设备的ID。但是,如果这个设备是临时的并且他返回使用他的永久设备怎么办?通知将被发送到tempopary设备,因为它是他登录的最后一个设备!

我真的很困惑,对于那些照亮我的方式的人来说,我会感到很沮丧。感谢。

修改

是否可以在AsyncTask中获取授权令牌和注册ID(令牌),而不是遵循Google的指南(而不是使用IntentService)?

1 个答案:

答案 0 :(得分:1)

正如第二部分问题的回答一样。 用户和他的regId之间的关系应该是1到n。因此,1个用户可以拥有多个设备,并通过这个多个regId。当您想向此用户发送消息时 - 您应该发送多条消息(每个设备1个消息)。其他可能的解决方案是使用最近引入的Device Group Messaging,IMO是最好的方法。