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');
事前に感謝します。