私は自分のサイトに openId を実装しようとしており、PHP で Janrain のライブラリを使用しています。ユーザーが提供したopenIdがすでにデータベースに保存されているかどうかを確認したい。ユーザーが「http://...」などを入力しないことがあるという状況を避けるために、正規化された uri のみを比較したいのですが、ユーザーが入力した直後に uri を正規化できる特定の関数を見つけるのに苦労しています。 openId で、サーバーにヒットするとすぐに、何かが openId プロバイダーに送信される前に。ところで、ゆっくりと想像できるように、私はこれをすべて機能させようとすることにうんざりしていますが、それでも試してみたいと思っているので、どんな助けも大歓迎です。
2 に答える
0
(Janrain の "OpenID Enabled" PHP5 ライブラリ、v 2.2.2 またはそのあたりを意味すると仮定します。) Auth_OpenID::normalizeUrl($url)
OpenID.php で定義されていますが、 としてマークされてい@access private
ます。認証トランザクションを開始すると、プロセスの結果として正規化された URL が取得されますが、それは実際に探しているものではありません。プライベート アクセスを無視し、ライブラリをハックして公開し、バージョンをアップグレードするときにパッチを実装したままにすることができます (バージョンがリリースされた場合)。または、彼らが何をしているかを見て、それを独自の関数にコピーして、ライブラリのハッキングや関連するバージョン管理の問題を回避することもできます。
于 2010-12-31T00:32:48.310 に答える
0
次のようなものを使用する場合:
$url = str_replace(array("http://", "https://", "www."), "", $url);
これは、毎回同じ URL を取得するのに役立ちます。
于 2010-12-31T01:05:55.913 に答える