3

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

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

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

4

2 回答 2

0

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

再四处窥探,我发现请求正在通过 request_streams() 由于以下检查在函数请求中失败(为方便起见而格式化):

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' )
    )
  )
) {

希望这可以帮助。

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

于 2012-04-26T05:57:52.730 回答
0

向此线程添加更多信息。

我对文件流(在'file_get_contents'上)也有问题。我如上所述强制卷曲。(仅限 Google 的问题。Yahoo 工作正常)

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

于 2013-01-29T20:00:20.467 回答