我在这里指的是您在使用您的 Google 帐户登录 GAE 应用程序后被重定向的页面,该页面要求您访问您的 Google 帐户的权限。
把它与自定义域和 https 放在一起,你就会明白我的问题。
抱歉冗长。我到处找。什么也没找到。不确定这是一个 OAuth 问题(认为不是)。
我的配置:
- 开发 myapp.appspot.com
- 将自定义域 myapp.mydomain.com 配置为指向 myapp
- myapp 正在使用 GAE 登录服务
- 需要来自自定义域(!)的https帖子,解决如下:
- 页面从http://myapp.mydomain.com在 HTTP 中加载
- 一些提交的 HTTPS URL 在页面中是硬编码的,如https://myapp.appspot.com/someservice
- 相同的域策略通过 http 标头解析服务器端
- GAE 登录服务适用于http://myapp.mydomain.com处理程序和https://myapp.appspot.com/someservice处理程序
工作流程是:
- 用户尚未通过身份验证
- 用户浏览http://myapp.mydomain.com(不是 ssl)
- 用户被重定向到谷歌帐户登录页面
- 用户登录
- 用户被重定向到上述页面:myapp is requesting permission to access user's google account
- 用户授予他的权限
- 用户在 - 好的
- 现在问题来了:
- 用户提交到https://myapp.appspot.com/someservice(以便数据是 ssl 传输),这是 loginrequired 装饰
- 登录正常,用户不会再次重定向到登录页面,
- 我认为这是因为 google 登录是跨应用程序(如果用户已经登录到 gmail,也应该如此)
- 但现在https://myapp.appspot.com/再次请求访问用户谷歌帐户的权限 - 这就是问题所在
两次提示用户授予 myapp 访问其帐户的权限:
- 有一次他浏览到http://myapp.mydomain.com
- 另一个是他向https://myapp.appspot.com/someservice提交数据时
我的用户不喜欢它,我也不喜欢!!!
我怀疑这是因为用户回答(允许或不感谢)是相对于应用程序的 URL 而不是相对于应用程序的其他一些唯一 ID 保存在服务器端的。
但我不知道如何解决它或至少解决它。
感谢您耐心阅读到这里。
任何帮助,将不胜感激。