【发布时间】:2013-12-04 19:58:49
【问题描述】:
我有一个谷歌应用程序域,我想为其创建自定义登录页面,但遇到了问题。
Google 提供了用于执行此操作的 SSO/OpenID/userApi 文档。一旦用户点击您的网站,我可以理解这些文档上的实现状态,他们将被发送到常规 gmail 登录,然后在登录后发送回您的网站。我试图让他们登录自定义页面而不是被发送到谷歌的默认 gmail 登录。还有其他文档似乎需要 SSO 和大量集成,我无法理解哪些可以让您这样做,但正如我所说,这超出了我的想象。
然后我想我可以复制表单元素并创建自定义 css,因为表单上的操作值将通过 google 进行身份验证。这偶尔会起作用,直到我发现当您转到 https://accounts.google.com/ServiceLoginAuth(默认 gmail 登录名)时,它会以 html 表单创建一个值(name="GALX" value=Randomletters),该值必须与 cookie 名称和值匹配才能能够向谷歌提交和验证。
从这里我认为没问题我会为谷歌登录创建一个隐藏的 iframe,以便填充 cookie(它确实获取 cookie),然后读取并在 html 表单中插入值。直到我发现出于安全原因,您无法更改或读取其他域的 cookie,这是非常有意义的。
然后我想我可以在 gmail 登录 url 上使用 php 的 file_get_contents 来获取 cookie 和正确的 html,然后将 html 插入到我的自定义页面中。我收到了 html,但这次没有 cookie。
无论如何发送一个请求,该请求将返回带有 php 的 file_get_contents('url') 或 curl 之类的 html/cookie 对?这样我可以遍历 file_get_contents 对象并通过 DOM 将 html 插入到页面中。还是因为安全原因特别阻止了这种情况,我是在吠叫一棵永远不会工作的树?
如果上述情况不可行,有人可以解释我如何通过自定义登录屏幕登录我的用户吗? 这样一个项目的谷歌文档是: https://developers.google.com/appengine/docs/python/gettingstartedpython27/usingusers https://developers.google.com/appengine/docs/python/users/#Python_Signing_in_and_out https://developers.google.com/google-apps/sso/saml_reference_implementation
【问题讨论】:
标签: php html google-app-engine