【问题标题】:Google suddenly started to return validation as false using LightOpenIdGoogle 突然开始使用 LightOpenId 将验证返回为 false
【发布时间】:2012-05-06 13:26:04
【问题描述】:

使用 LightOpenID 库,我成功地在我的网站中实现了 OpenID。 然而,几天前,当使用谷歌作为提供者时,它只是停止工作(使用雅虎运行良好!)。 自从我实施 OpenID 那天起,它使用任何提供程序都运行良好。我什至有一些用户使用他们的 Google 帐户登录。然而,奇怪的是,几天前谷歌停止工作(而其他提供程序仍然运行良好),在 $openid->validate()

上返回 false

我使用 LightOpenID 提供的未修改的 example-google.php 文件进行了测试,但我没有运气。我还使用不同的 Google 帐户进行了测试,也没有运气。我什至在不同的网站上进行了测试,但仍然没有运气。请注意,我使用的是共享主机并安装了 curl,运行版本 7.19.7

Google 最近是否对其系统进行了任何导致此问题的更改?这个问题还有其他原因吗?

【问题讨论】:

  • 这个问题解决了吗?是怎么做到的!

标签: php openid lightopenid


【解决方案1】:

其他人说启用 cURL(这可能是您的问题),但在我的情况下启用了 cURL。

更多的窥探,我发现请求正在通过 request_streams(),因为函数 request 中的以下检查失败(为方便起见而格式化):

if (
  function_exists( 'curl_init' ) &&
  (
    !in_array( 'https', stream_get_wrappers() ) ||
    !ini_get( 'safe_mode' ) &&
    !ini_get('open_basedir' )
  )
) {

改成:

if (
  function_exists( 'curl_init' ) &&
  (
    !in_array( 'https', stream_get_wrappers() ) ||
    (
      !ini_get( 'safe_mode' ) &&
      !ini_get( 'open_basedir' )
    )
  )
) {

希望这会有所帮助。

编辑:忘了说我不确定谷歌是否确实做了一些改变,但事实上很多人使用同一个库同时遇到同样的问题意味着发生了一些事情,我可以说大多数人们可能没有改变任何事情。谷歌可能会轻弹一些开关以使某些东西更具限制性/安全性。

【讨论】:

  • 感谢您的回复!但是,不幸的是,对我没有用。我确实启用了 cURL(curl_init() 没有问题),这让这个问题更加令人沮丧。我尝试删除此检查并自动使用 request_curl(),但也没有用。
  • 这很奇怪。这对我有用,所以我认为它可能对你有用。抱歉,我帮不上什么忙。最奇怪的是,直到几天前,它才对每个人都有效。谷歌你做了什么? -- 忍者编辑:检查stackoverflow.com/questions/4694986/…
【解决方案2】:

向此线程添加更多信息。

我也遇到了文件流(在“file_get_contents”上)的问题。我如上所述强制卷曲。 (仅限 Google 的问题。Yahoo 工作正常)

对于我的共享主机,我还必须注释掉“CURLOPT_FOLLOWLOCATION”选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2011-06-25
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多