- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 LightOpenID 针对 Google Apps 验证 OpenID。我发出初始 authURL() 请求,一切都很好。我调用 validate() 但失败了。通过大量的 echo ,我已经追踪到 validate() 的最后几行。
从 validate() 中,传递到 discovery($url) 的 url 是 https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=117665028262121597341
discover() 首先检查 xrds 位置,但该位置不存在。 discovery() 接下来检查内容类型是否为 xrds+xml,这是正确的。 discovery() 检查 Service(.*)/Service,这是正确的。这是服务的片段,/服务
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/a/<my domain>.com/o8/ud?be=o8</URI>
</Service>
discover() 看到我们正在使用 OpenID 2 并将 URI 字段提取到 $server 变量中。 discovery() 继续提取 CanonicalID,发现 Google 支持 AX 而不是 SREG。最后,discover() 将 $server 返回为 https://www.google.com/a/my-domain.com/o8/ud?be=o8
validate() 继续清理 data[] 中的每个字段,具体取决于 magic_quotes 与否。它将 openid.mode 设置为“check_authentication”,请求 discovery($url) 返回的 $server 和 preg 的“/is_valid:true”。最后的 preg_match 失败了。 $server url 不会返回验证,而是显示“您请求的页面无效”。
我正在寻找的答案是 Google Apps 验证的正确网址。紧随其后的是网址应该是什么样子,我将深入研究 Google Apps 返回的信息,看看是否有类似的信息。
添加:不确定这是否重要,但我确实有一个/.well-known/host-meta 文件。以下是内容: Link: <https://www.google.com/accounts/o8/site-xrds?hd=my-domain.com>; rel="describedby http://reltype.google.com/openid/xrd-op"; type="application/xrds+xml"
如果您需要更多代码或数据,请告诉我。
谢谢,埃里克·B.
最佳答案
确保您的服务器上已安装 PHP curl 扩展。我们最近在生产中遇到了完全相同的症状,这与服务器配置问题有关。
如果您在 Debian 上运行应用程序,只需使用:
apt-get install php5-curl
关于php - LightOpenID validate() 在 Google Apps 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5463029/
使用提供的示例代码,我可以使用我的 Google 帐户通过 lightopenid 登录到我的应用程序。我已将身份存储在 cookie 中,以便我的登录信息可以在整个 session 中保持不变。 当
我在使用名为 LightOpenID 的小型 OpenID 库时遇到问题.我可以向几乎所有提供者进行身份验证,但我不知道如何从提供者那里获取数据。即使使用 print_r(),我也只得到 Array(
你好 我几个小时前下载了 LightOpenID (http://gitorious.org/lightopenid),但仍然不知道如何让它工作。 我在 test.php 文件中保存了这个 googl
我想为我的 Web 应用程序实现一个 OpenID 登录系统。我为此使用 LightOpenID。我去了谷歌,发现旧的(在线有据可查的)OpenID2 系统 became old : Importan
使用 LightOpenID 库,我成功地在我的网站上实现了 OpenID。然而,几天前,当使用谷歌作为提供者时它就停止工作了(它在使用雅虎时运行良好!)。自从我实现 OpenID 的那一天起,它使用
我目前正在尝试为大学的小型网站实现 openID。我对此很陌生,并已跟进相关文章。我已经下载了 lightopenId 并将文件夹上传到我的网络服务器。我的学校有谷歌托管他们的电子邮件服务,所以典型的
我目前正在使用 LightOpenID 允许用户登录我的站点,我可以在其中自动提取他们的用户名和电子邮件地址: $openid->required = array('namePerson/first'
Oauth 2.0 似乎是最受支持的外部身份验证工具。然而,在网上搜索了很多很多小时后,我发现在使用 PHP 时没有简单的方法可以开始使用它。或许(但愿如此)我只是没有以正确的方式进行搜索。 这是我要
有没有办法使用 POST 方法使用 LightOpenID 库进行身份验证?确切地说,在验证之后,谷歌(例如)返回指定的 URL,但所有数据都是使用 GET 方法发送给我的,最终以丑陋和长的 URL
我正在使用 LightOpenID 针对 Google Apps 验证 OpenID。我发出初始 authURL() 请求,一切都很好。我调用 validate() 但失败了。通过大量的 echo ,
Janrain's PHP OpenID的PHP实现有什么区别?图书馆和 LightOpenID . 一个比另一个更安全吗? 根据 Google's best practices page : A c
我正在免费网络主机(awspace)上使用 LightOpenID 库,到目前为止,我所有使用开放 ID 通过 Google 帐户登录的尝试都会导致以下错误: 示例-google.php: Faile
最近,我注意到当将生成的身份存储在我的数据库中时,Google 有时会为同一用户返回不同的身份,从而导致单个用户有两个数据库条目。 经过一些研究,我发现 Google 使用 $openid->real
我是一名优秀的程序员,十分优秀!