1

誰かがこれを機能させるのを手伝ってくれませんか。

問題は、クエリ文字列を URL に添付するだけで、それだけです。Google サインイン ページがありません。

http://domain.nl/controller/function?action=verify&openid_identifier=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid

多分それは、mvc デザインと htaccess ファイルを使用しているという事実のような特定のものです。

解決策は今のところ明確ではありません。

私を正しい方向に向けてください

ありがとう、リチャード

コントローラー内....これは、フォームが指す関数です

public function openid(){

        try {
    $openid = new LightOpenID;
    if(!$openid->mode) {
        if(isset($_GET['action'])) {
            $openid->identity = 'https://www.google.com/accounts/o8/id';
              //$openid->identity = 'https://www.google.com/accounts/o8/site-xrds?hd=YourDomain.in'; //this can be changed as you know...  
            header('Location: ' . $openid->authUrl());
        }
/*<form action="?login" method="post">
    <button>Login with Google</button>
</form>*/

    } elseif($openid->mode == 'cancel') {
        echo 'Gebruiker heeft authenticatie geannuleerd!';
    } else {
        echo 'Gebruiker ' . ($openid->validate() ? $openid->identity . ' heeft ' : 'heeft niet ') . 'ingelogd.';
    }
} catch(ErrorException $e) {
    echo $e->getMessage();
}

    }
4

1 に答える 1

1

リダイレクトが機能しないようです。$openid->authUrl()正しい値を返すかどうかを確認します。もしそうなら、それは問題がLightOpenIDとは何の関係もないということです。

また、Google認証でsite-xrdsを使用する場合は、以下によって返されるドキュメントに次のヘッダーを含めるようにしてhttp://your.domain/openidください。

header('X-XRDS-Location: https://www.google.com/accounts/o8/site-xrds?hd=your.domain');

そうしないと、検証が失敗します。

于 2011-04-02T10:30:33.823 に答える