0

我们为我们的云解决方案实施了智能家居操作,它允许我们控制我们的恒温器。此外,实现了报告状态功能,但在下一个案例中我们遇到了麻烦:

案子:

使用 Google 帐户userA@gmail.com登录到 Google Home 应用程序的用户 A通过我们的智能操作使用帐户 user@ourcompany.com 执行链接过程(授权)- >所有设备都正确同步到他

使用 Google 帐户anotherUserB@gmail.com登录到 Google Home 应用程序的用户B通过我们的智能操作使用与用户A相同的帐户执行链接过程(授权):user@ourcompany.com -> 所有设备也同步到他正确。

在我们的后端,两次触发用户user@ourcompany.com的SYNC请求, 因为他们都使用相同的帐户进行链接。触发SYNC请求后,我们开始发送 Google Report State 事件。在当前步骤,一切正常。

但是,例如,如果UserA取消链接他的帐户 -> Google 发送DISCONNECT意图,并且正如文档中所说,我们应该停止发送报告状态事件。这里有一个问题:用户B仍然有 user@ourcompany.com 的关联帐户如果我们停止发送报告状态事件,用户 B 将收到不正确的数据。

在这种情况下我们应该怎么做?如何正确处理?我们什么时候应该停止发送报告状态事件?

4

1 回答 1

0

当每个 Google 用户连接到 OurCompany 帐户时,您应该为他们分配一个唯一的访问令牌和刷新令牌。根据需要,您应该按照 OAuth 标准流程使用刷新令牌更新您的访问令牌。

发送 DISCONNECT 意图时,您应该使用该请求中的请求访问令牌来删除该访问令牌并刷新令牌。

您可能会将其视为具有一系列有效刷新和访问令牌的数组。当您删除一个时,阵列中可能还有第二个。一旦没有留下任何令牌,就可以停止报告状态。

于 2019-08-01T18:23:39.023 回答