我正在使用LightOpenID库尝试通过OpenID注册用户。对于Google身份验证,一切似乎都很正常,除了validate()总是失败。我正在转储$openid,所有数据似乎都是正确的,尽管validate()仍然失败。
我已经看到了这个问题,但我的问题略有不同,因为我确定响应不是找不到服务器,而是服务器出于某种原因响应为is_valid:LightOpenID validate() fail on Google Apps。为什么会这样呢?
下面是我的做法(在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');任何帮助都将不胜感激,提前感谢。
发布于 2013-10-23 03:45:07
我也遇到过同样的问题。绞尽脑汁试图解决这个问题后,我发现这个问题似乎是由于添加了$openid->required = array('contact/email');而导致的
删除或注释掉它将重新开始工作的那一行。为什么我不确定。
https://stackoverflow.com/questions/15043016
复制相似问题