【问题标题】:Custom domain app requesting permission to access Google Account自定义域应用请求访问 Google 帐户的权限
【发布时间】:2011-10-14 09:55:37
【问题描述】:

我在这里指的是当你用你的谷歌账户登录到 GAE 应用程序后你被重定向的那个页面,它要求你允许访问你的谷歌账户。

将此与自定义域和 https 放在一起,您就会遇到我的问题。

抱歉冗长。我到处找。什么也没找到。不确定这是一个 OAuth 问题(认为不是)。

我的配置:

  • 开发了 myapp.appspot.com
  • 将自定义域 myapp.mydomain.com 配置为指向 myapp
  • myapp 正在使用 GAE 登录服务
  • 需要来自自定义域(!)的https帖子,解决如下:
  • GAE 登录服务适用于 http://myapp.mydomain.com 处理程序和 https://myapp.appspot.com/someservice 处理程序

工作流程是:

  1. 用户尚未通过身份验证
  2. 用户浏览http://myapp.mydomain.com(不是ssl)
  3. 用户被重定向到谷歌账户登录页面
  4. 用户登录
  5. 用户被重定向到上述页面:myapp is requesting permission to access user's google account
  6. 用户授予他的权限
  7. 用户在 - OK
  8. 现在问题来了:
  9. 用户提交到 https://myapp.appspot.com/someservice(以便数据通过 ssl 传输),这是 loginrequired 修饰的
  10. 登录正常,用户不会再次重定向到登录页面,
    • 我认为这是因为 google 登录是跨应用程序(如果用户已经登录到 gmail 也应该如此)
  11. 但现在https://myapp.appspot.com/再次请求访问用户的 google 帐户的权限 - 这就是问题

提示用户TWICE授予myapp访问其帐户的权限:

  • 有一次他浏览到 http://myapp.mydomain.com
  • 当他向 https://myapp.appspot.com/someservice 提交数据时,另一个

我的用户不喜欢它,我也不喜欢它!!!

我怀疑这是因为用户的回答(允许或不感谢)是相对于应用程序的 URL 保存在服务器端的 而不是相对于应用程序的其他一些唯一 ID。

但我不知道如何解决它或至少解决它。

感谢您耐心阅读到这里。

任何帮助将不胜感激。

【问题讨论】:

  • 您使用什么 SDK/语言和框架?

标签: google-app-engine authentication google-account


【解决方案1】:

为用户会话发出的 cookie 是按域和按协议的。因此,同一会话将无法在 apppot 应用程序和您的自定义域上运行。这不是 App Engine 的限制 - 它只是 HTTP 的工作原理。

目前最好的解决方案是将表单本身也放在 HTTPS 上(无论如何这通常是个好主意)。

【讨论】:

  • 我当然想将表单本身放在 HTTPS 上。但要做到这一点,我需要 App Engine 支持自定义域的 SSL……有什么消息吗?
  • 编辑:这不是 cookie 的问题。 Cookies 用于保存登录信息,这些是跨域的。相反,访问谷歌帐户的用户权限被保存在服务器端(我的意思是在谷歌服务器上的某个地方),因为它可以被验证: 1 如果您删除 cookie,您的“允许 30 天”答案仍然有效; 2 如果您从 chrome 中回答“允许 30 天”,则答案在 Firefox 中仍然有效!所以说这个信息(“允许 30 天”)存储在服务器端,这不是 cookie 的问题,但事实证明这是 App Engine 的限制......
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 2020-04-27
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多