2011-10-14 89 views
0

我在这里指的是您使用您的Google帐户登录GAE应用后重定向的页面,该帐户要求您访问您的Google帐户。自定义域名应用请求获取访问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. 用户被重定向到Google帐户登录页面
  4. 用户登录
  5. 用户被重定向到上述页面:MYAPP请求允许访问用户的谷歌账户
  6. 用户授予他的许可
  7. 用户是 - OK
  8. 现在问题来了:
  9. 用户进行提交https://myapp.appspot.com/someservice(使数据传输的SSL),这是loginrequired装饰
  10. 登录就可以了,用户是不再重定向到登录页面,
    • 我想这是因为谷歌的登录是跨应用程序(同样要澳鹏如果用户已经登录到Gmail,说)
  11. 但现在HTTPS://myapp.appspot。COM/再次请求访问用户的谷歌账户 - 这是

提示用户商讯将权限授予MYAPP访问他的帐户问题:

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

我的用户不喜欢它和我呢!

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

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

感谢您的耐心阅读。

任何帮助,将不胜感激。

+0

你使用的是什么SDK /语言和框架? –

+0

SDK 1.5.2 /语言Python –

回答

0

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

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

+0

当然,我想将表单本身放在HTTPS上。 但要做到这一点,我需要App Engine支持自定义域的SSL ... 有关这方面的消息吗? –

+0

编辑:这不是一个饼干的问题。 Cookie用于保存登录信息,并且这些是跨域。相反,用户访问谷歌帐户的权限,是保存在服务器端(我的意思是在谷歌服务器上的某个地方),因为它可以验证:1如果您删除cookies,“允许30天”的答案仍然有效; 2如果您从Chrome浏览器回答“允许30天”,则答案仍然在Firefox中有效!所以说这个信息(“允许30天”)**存储在服务器端**,这不是Cookie的问题,但它原来是一个App Engine限制... –

相关问题