google-app-engine - Google Apps 应用程序相互通信

标签 google-app-engine authentication

我正在寻找一种方法,让两个 Google Apps 应用程序能够相互交谈并在彼此之间共享数据。我有以下场景:

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

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

有没有一种方法可以通过 Google Federated Login 来实现?我说的是 Hybrid protocol在这里。

最佳答案

这里有一个简单的方法:

  1. 您在两个应用程序上都将所有内容都与用户的 Google 用户 ID 联系起来。
  2. 您使用包含用户 ID 的 HTTP 请求共享数据。
  3. 为防止用户 ID 泄露(帐户 API 禁止)并验证消息确实来自其他应用程序,您可以使用对称密码(例如 AES 或 Blowfish 或任何您喜欢的密码)对请求进行加密。两个应用程序都嵌入了相同的 key 。

您可以使用公钥密码术。只有两个应用程序,我认为这是不值得的。如果您开始拥有更多应用,公钥就有意义了。

小字:如果没有额外的措施,加密不能保证完整性或来源。您需要采取预防措施防止播放,例如通过合并时间戳或序列号。您需要采取预防措施防止篡改,例如与校验和。确保使用 CBC 和良好的初始化向量。对 key 保密。

关于google-app-engine - Google Apps 应用程序相互通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217586/

相关文章:

c# - 如何从 C# 代码注销 Blazor 服务器

java - 使用 JDBC 在 java 中设置用户身份验证

java - Google AppEngine TaskQueue 抛出由 : java. lang.IllegalArgumentException 引起的:无效 URL:null

python - Google App Engine 投影查询

javascript - 由于缺少自定义 header ,身份验证中间件会阻止 OPTIONS 预检请求

testing - 用于登录的 Jmeter 测试

php - Auth::user() 返回 null

android - 谷歌云端点应该使用哪个网络库

google-app-engine - 另一个网站显示在我网站的搜索结果下方

python - 在 GAE 中将 python 类存储为 pickle ?