跨子域和项目无缝使用 Google 登录

跨子域和项目无缝使用 Google 登录

我在多个 Google 云项目和子域中使用单个 Google 登录客户端 ID。

Google 登录 OAuth 是在项目 A 中设置的,该项目由 subdomain1.commondomain.com 提供服务。当从完全相同的子域 + 域组合(即应用引擎服务)请求路由时,登录可在浏览器窗口之间无缝运行。当我在一个窗口中退出时,它会自动在完全相同的子域 + 域组合(应用引擎服务)的所有其他窗口中退出。

然后在项目 B 中,另一个应用引擎服务在 subdomain2.commondomain.com 上提供。我使用相同的 Google 登录客户端 ID。登录时没有要求我批准对范围的访问权限。当我第一次导航到 subdomain2 时,我必须手动单击登录按钮。

当我在一个应用引擎服务中退出时,从另一个项目请求另一个应用引擎服务的窗口将保持登录状态,直到我手动退出。

我认为这是正常行为,但有没有办法调整这个设置,以便它能给我客户端体验,就好像我只是在一个子域上登录一个应用引擎服务一样?

答案1

听起来您没有将完成 OAuth 登录后收到的令牌传递给其他项目和服务,以便他们可以在诉诸新的登录过程之前尝试验证它。您应该将其存储在所有项目都可以访问的地方,例如数据存储区或 Memcache。

相关内容