0

我在这里指的是您在使用您的 Google 帐户登录 GAE 应用程序后被重定向的页面,该页面要求您访问您的 Google 帐户的权限。

把它与自定义域和 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. 用户在 - 好的
  8. 现在问题来了:
  9. 用户提交到https://myapp.appspot.com/someservice(以便数据是 ssl 传输),这是 loginrequired 装饰
  10. 登录正常,用户不会再次重定向到登录页面,
    • 我认为这是因为 google 登录是跨应用程序(如果用户已经登录到 gmail,也应该如此)
  11. 但现在https://myapp.appspot.com/再次请求访问用户谷歌帐户的权限 - 这就是问题所在

两次提示用户授予 myapp 访问其帐户的权限

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

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

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

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

感谢您耐心阅读到这里。

任何帮助,将不胜感激。

4

1 回答 1

0

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

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

于 2011-10-17T03:15:50.187 回答