独自のOpenIDを作成する

最近、OpenIDの使用が一般的になりました。 便利で、高速で、モダンです。

OpenIDはシングルサインオンのオープンな分散システムであり、多数のサイトで1つのログインとパスワードを使用できます。 OpenIDをサポートするサイトでは、ユーザーは各サイトのデータを登録して記憶する必要はありません。 代わりに、「IDプロバイダー」OpenID(IDを提供)のサイトに登録するだけで済みます。 OpenIDテクノロジーは分散化されているため、どのサイトでもOpenIDソフトウェアをエントリの手段として使用できます。 OpenIDは、ユーザーを認証するために中央サイトに依存しないことで問題を解決します。 ( ウィキペディア



私にとっては、しばらくの間、ainu.myopenid.comという行を覚えることは困難でした。 時間の経過とともに、もちろん、私は彼女を思い出しましたが、今ではainu.myopenid.comの代わりにどこでも ramainen.ruを書きます (私のページ、私は彼女を思い出しました)、そしてサービスは私を完全に理解します。 もちろん、私はOpenIDプロバイダーにはなりませんでしたが、OpenIDの記憶と入力はずっと簡単になりました。



これを自分で行うのは非常に簡単です。 ただし、このためには、php、asp、またはその他の言語をサポートするパーソナルサーバー(ホスティング、無料)が必要です。 さて、または親切にサブドメインnick.krasivyadres.ruでこれを行う友人からのようなサーバー(ホスティング)。

アイデアの本質は簡単です。サービスがOpenIDサーバーを要求すると、ヘッダーでUSER_AGENTパラメーターを送信します

["HTTP_USER_AGENT"] =>

文字列(40) "php-openid / 2.1.1(php / 5.2.6)curl / 7.15.5"



PHPでは、これは$ _SERVER ["HTTP_USER_AGENT"]で引き裂かれます。

このようなヘッダーが使用可能な場合、登録済みのOpenIDプロバイダー(ニックネームmyopenid.comなど)にブラウザーをリダイレクトする必要があります。

phpでは、既製のソリューションは非常に簡単です。index.php(または別のメインphpファイル)で、次の最初の行を記述します。

 if(strpos($ _ SERVER ["HTTP_USER_AGENT"]、 'openid')!== false){
   header( "Location:http://ainu.myopenid.com/");
   // ainu.myopenid.comをOpenIDに置き換えます
   exit();
 }




openid部分文字列の存在がチェックされます(バージョンが変更された場合)。

MirTesenといくつかのブログのコメントで確認しました。



All Articles