1

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

事前に感謝します。

4

1 に答える 1

0

私は同じ問題を抱えていました。頭を悩ませて解決しようとした後、問題は次の追加によって引き起こされているようだとわかりました $openid->required = array('contact/email');

その行を削除またはコメントアウトすると、再び機能し始めます。よくわかりません。

于 2013-10-22T19:45:07.270 に答える