2010-12-31 9 views
0

私は自分のサイト用にopenIdを実装しようとしており、phpでJanrainのライブラリを使っています。 openIdユーザーが既にデータベースに格納されているかどうか確認したい。私は正規化されたURIだけを比較して、ユーザが "http:// ..."などの入力をしないような状況を避けたい。 ユーザの直後に私のためにuriを正規化できる特定の関数を見つけるのが難しいopenIdに入るので、サーバにアクセスするとすぐに、openIdプロバイダに何かが送信される前に入力されます。 btwあなたはゆっくりと想像することができますが、私はこのすべての作業をやってみることに腹を立てていますが、まだ試してみると助かります。Janrain openid libraryで正規化されたURLを取得するには?

答えて

0

(日本語の "OpenID Enabled" PHP5ライブラリ、v 2.2.2またはその周辺を意味すると仮定します)Auth_OpenID::normalizeUrl($url)がOpenID.phpで定義されていますが、@access privateとマークされています。承認トランザクションを開始すると、プロセスの結果として正規化されたURLが取得されますが、それは実際に探しているものではありません。プライベートアクセスを無視してライブラリをハックして公開することができます。その後、バージョンをアップグレードする際にパッチを実装したままにしておくことができます。あるいは、自分が何をやっているのかを見て、自分自身の機能にコピーして、ライブラリのハックや関連するバージョン管理の問題を避けることができます。あなたが同じURLを毎回得るのを助ける必要があります

$url = str_replace(array("http://", "https://", "www."), "", $url); 

:あなたはのようなものを使用している場合

0

+0

これはおそらく一貫したURLを与えますが、厳密にOpenIDの意味では「正規化された」URLではありません。しかし、あなたの提案は、IDをアカウントレコードに関連付けるという明記された目的のために十分かもしれません。 – RobertB

関連する問題