【问题标题】:OpenID/LightOpenID: validate() failureOpenID/LightOpenID:验证()失败
【发布时间】:2013-02-09 04:23:09
【问题描述】:

我正在使用 LightOpenID 库尝试通过 OpenID 注册用户。除了 validate() 总是失败之外,一切似乎都适用于 Google 身份验证。我正在转储 $openid,所有数据似乎都井然有序,但 validate() 仍然失败。

我已经看到这个问题LightOpenID validate() fail on Google Apps,但我的问题略有不同,因为我确定响应不是未找到服务器,而是服务器出于某种原因响应 is_valid: false。为什么会这样?

这是我的做法(在 Laravel 中):

// testing with Google
try {
    $openid = new LightOpenID();
    if (!$openid->mode) {
        $openid->required = array('contact/email');
        $openid->identity = 'https://www.google.com/accounts/o8/id';
        return Redirect::to($openid->authURL());
    } else if ($openid->mode == "cancel") {
        echo "User has canceled authentication.";
    } else {
        $attributes = $openid->getAttributes();

        // debugging 
        echo ($openid->validate()) ? "Logged in " : "Not logged in ";
        ?><pre><?php echo var_dump($openid);?></pre><pre><?php
        echo var_dump($attributes);?></pre><?php
    }
} catch (ErrorException $e) {
    echo $e->getMessage();
}
return View::make('home.index');

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

  • 您没有将参数传递给构造函数,这表明您使用的是旧版本的库。试试newest 一个,它可能会解决您的问题。

标签: php openid lightopenid


【解决方案1】:

我也遇到了同样的问题。在绞尽脑汁试图解决之后,我发现问题似乎是由于添加了 $openid-&gt;required = array('contact/email');

删除或注释掉它将重新开始工作的那一行。为什么我不确定。

【讨论】:

  • 我发现了完全相同的东西。这真的很愚蠢,因为当验证失败时,它会返回电子邮件地址。即使安装了 curl,我的实现也不使用它。由于影响它的另一个设置(我无法更改)。有没有人在这方面取得任何进展?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 2012-03-15
  • 2012-10-18
相关资源
最近更新 更多