代码之家  ›  专栏  ›  技术社区  ›  Michael Pliskin

谷歌应用程序相互对话

  •  4
  • Michael Pliskin  · 技术社区  · 14 年前

    我正在寻找一种方法,让两个谷歌应用程序互相交谈,互相共享数据。我有以下场景:

    • 应用程序A使用谷歌应用程序登录登录用户
    • 应用程序B使用谷歌应用程序登录登录用户
    • 然后,这些应用程序需要使用一些API直接相互通信(服务器到服务器)

    问题是:这些应用程序如何验证另一个应用程序使用同一个用户登录Google?我想象一下: -应用程序A从Google获取一些“令牌”并将其发送到应用程序B -应用程序B验证此令牌对于登录时使用的同一Google帐户有效

    有没有办法通过谷歌联合登录来实现这一点?我说的是 Hybrid protocol 在这里。

    2 回复  |  直到 14 年前
        1
  •  1
  •   drxzcl    14 年前

    以下是一个简单的方法:

    1. 在这两个应用程序中,您将所有内容都锁定到用户的Google用户ID。
    2. 使用包含用户ID的HTTP请求共享数据。
    3. 为了防止用户ID泄漏(被帐户API禁止)并验证消息是否真的来自其他应用程序,可以使用对称密码(如aes或blowfish或任何您喜欢的密码)加密请求。两个应用程序都嵌入了相同的密钥。

    你可以公开密钥加密。只有两个应用程序,在我看来不值得。如果你开始有更多的应用程序,公开密钥是有意义的。

    精细打印:没有附加措施,加密无法保证完整性或来源。您需要采取预防措施防止重放,例如合并时间戳或序列号。您需要采取预防措施防止篡改,例如校验和。确保使用CBC和良好的初始化向量。把钥匙保密。

        2
  •  1
  •   Vladimir Prudnikov    14 年前

    user.user_id() 对于同一个用户,所有应用程序都是相同的。因此,您可以简单地比较 user.user_id()) . 这就是你要找的吗?

    注意:每个用户都有相同的用户ID 适用于所有应用程序引擎应用程序。如果 您的应用程序在公共场合使用用户ID 数据,例如将其包含在URL中 参数,应使用哈希 添加了“salt”值的算法 隐藏ID。暴露原始ID可能 允许某人关联用户的 一个应用程序中的活动 另一个,或获取用户的电子邮件 强制用户签名的地址 在另一个应用程序中。

    From docs