1

私はLightOpenIDを使用しており、それに付属しているexample-google.phpのコピーに近いテストページがあります(デバッグのためにいくつかのエコーを投入しました)。[Googleでログイン]ボタンをクリックすると、Googleに移動します。有効なGoogleAppsメールアドレスでログインすると、自分のページに戻ります。しかし、claimed_idを検証しようとすると、「サーバーが見つかりません!」というメッセージが表示されます。メッセージ。

私はガイダンスのためにそのフレーズをグーグルで検索しましたが、ほとんどの応答はただの豪華なチェックインへのリンクです。fwritesを使用してコードを詳しく調べ、コードが次の順序で実行されることを示します...

(私が入れたすべてのデバッグコードのために、私の行番号は少しずれているかもしれません...)

openid.php:validate()が呼び出されます。validate()では、568行目あたりがこの行です...

$server = $this->discover($this->data['openid_identity']);

この行の後、$ serverは空、つまり''です。

Discover($ url)の開始時に、変数が

$url = http://<my Google Apps domain>.com/openid?id=117665028262121597341  

問題は、htmlTag()が呼び出されたときに、$ serverが行364(openid.php)に設定されていないことです。同じ$urlが$contentに対してスクレイプされますが、そのURLは404を返し、htmlTag()のpregsに失敗します。

$ urlは正しくありませんか?これは、GoogleAppsからのものだと思う「openid_identity」から直接設定されます。

これは、GoogleAppsに正常にサインインした後に返されるURLです。

http://intranet.<my domain>.com/<my path>/validate.php?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Fa%2F<my Google App domain>%2Fo8%2Fud%3Fbe%3Do8&openid.response_nonce=2010-10-25T04%3A23%3A26ZFQ4Fq3F3W1b9ug&openid.return_to=http%3A%2F%2Fintranet.<my domain>.com%2F<my path>%2Fvalidate.php&openid.assoc_handle=AOQobUeErcWBdJC6slZm3nCw_BRbvHTjpdtycleA2P89n15QCCr8fRDE&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle&openid.sig=yrja2H%2Fvufp2BqezN4NIVGA5wWM%3D&openid.identity=http%3A%2F%2F<my Google App domain>%2Fopenid%3Fid%3D117665028262121597341&openid.claimed_id=http%3A%2F%2F<my Google App domain>%2Fopenid%3Fid%3D117665028262121597341

私はOpenIDに慣れていないので、ここで正しい方向を示すためのフレーズまたはリンクをいただければ幸いです。

ありがとう、エリックB。

4

1 に答える 1

-1

(私の 2 回目の回答) Mewp が再び表示されます。わかった。わかりやすい説明ありがとうございます。Google アカウントの担当者と一緒に、彼らが返してきた URL がどうなっているのかを調べます。

気をつけて、エリック B.

(初回答) Mewpさん、LightOpenIDさん、ありがとうございました!(あなたのサイトには性別についての言及はありませんが)

openid.mode が id_res の場合、validate() を実行することなく、claimed_identity を使用するのに十分安全ですか? 「検証」と呼ばれるものをスキップするのは間違っているようですが、取得して元の投稿に貼り付けた URL 応答は、ここに示すように、ログインと確認の成功に対する Google のサンプル応答と一致します: http://code.google.com/apis/accounts /docs/OpenID.html#サンプル

ありがとう、エリック B.

于 2010-10-25T15:59:41.680 に答える