使用LightOpenID库,我成功地在我的网站上实现了OpenID。 然而,几天前,当使用谷歌作为提供商时,它只是停止工作(使用雅虎运行良好)。 从我实施OpenID的那天起,它就使用任何提供程序运行良好。我甚至让一些用户使用他们的Google帐户登录。然而,奇怪的是,几天前谷歌停止工作(而其他提供商仍然运行正常),在$ openid-> validate()
上返回false我使用示例-google.php文件测试,没有修改,由LightOpenID提供,但我没有运气。我还测试了使用不同的Google帐户,也没有运气。我甚至在不同的网站上测试过,但仍然没有运气。请注意,我正在使用共享主机并且已安装curl,运行版本7.19.7
Google是否对其系统进行了最近的更改?这个问题还有其他原因吗?
答案 0 :(得分: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' )
)
)
) {
希望这有帮助。
编辑:忘了说我不确定谷歌是否做了一些改变,但是很多人同时使用同一个库同时遇到同样问题的事实意味着发生了什么,我可以说大多数人可能并没有改变一件事。谷歌可能会拨打一些开关来制作更具限制性/安全性的东西。
答案 1 :(得分:0)
向此帖添加更多信息。
我也遇到了文件流问题(在'file_get_contents'上)。我如上所述强迫卷曲。 (仅限谷歌问题。雅虎工作正常)
通过我的共享托管,我还必须注释掉'CURLOPT_FOLLOWLOCATION'选项。