Tweet
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Home > > XamppでPHP OpenID LibraryのOPのexample(Server)を動かしてみる
Home > > XamppでPHP OpenID LibraryのOPのexample(Server)を動かしてみる
Home > OpenID > XamppでPHP OpenID LibraryのOPのexample(Server)を動かしてみる
Tweet
以下だらだら長文(しかも殴り書きなので文章めちゃくちゃ)書いてますが、
結局curlを有効にすれば普通にできます!
OP(Provider)編です。
RPがかなり簡単にできたので、特に調べずやってみます。
http://localhost/openid/examples/server/server.phpにアクセスしてみると、
This server needs to be configured before it can be used. Edit config.php to reflect your server's setup, then load this page again.
おぉ、いきなりつまづいた…
しかもconfig.phpなんて見当たらないし。
とか思ってたら、setup.phpなんてのがあった。
http://localhost/openid/examples/server/setup.phpから設定できるらしい。
以下設定。
Server URL:http://localhost/openid/examples/server/server.php(デフォルト)
Include Path:空白(デフォルト)
ライブラリをPHPのincludeパスに含まれてないとこに置いてる時は必要っぽい。
とりあえず無視。DocumentRootに置くという本番ならありえない構成になってるのでまぁ大丈夫でしょう。
Store method:DB作るの面倒いので、Filesystemで。
Filesystem Pathは、/xampp/htdocs/openid/examples/server/にでもしておく。(セキュリティ0ですね^^)
できたソースがこちら↓
<?php
/**
* The URL for the server.
*
* This is the location of server.php. For example:
*
* $server_url = 'http://example.com/~user/server.php';
*
* This must be a full URL.
*/
$server_url = "http://localhost/openid/examples/server/server.php";
/**
* Initialize an OpenID store
*
* @return object $store an instance of OpenID store (see the
* documentation for how to create one)
*/
function getOpenIDStore()
{
require_once "Auth/OpenID/FileStore.php";
return new Auth_OpenID_FileStore("/xampp/htdocs/openid/examples/server/");
}
?>
これをC:\xampp\htdocs\openid\examples\server\config.phpとして保存する。
(ここまでやるならファイル作成までやってくれたらいいのに。。。)
これで設定は完了の模様。
では、改めて…index.phpは説明だけっぽかったので、
http://localhost/openid/examples/server/server.php/loginにアクセス!
ユーザ名を入力してログインすれば、OpenIDが発行される。
(※ exampleなのでその辺りは緩く作ってあり、実際は発行作業をしなくても認証は可能)
Identifierはhttp://localhost/openid/examples/server/server.php/idpage?user=tnantoka。
ログイン!
成功!!
Identifierのページ
では、早速使ってみる。
(前回のConsumerを利用)
http://localhost/openid/examples/consumer/のIdentity URLに
http://localhost/openid/examples/server/server.phpを入力。
30秒ぐらい待たされたのちにエラー。
Authentication error; not a valid OpenID.
2.0だからProviderのURLだけ入れればいいはずだよなぁ?
http://localhost/openid/examples/server/server.php/idpage?user=tnantokaでもダメ。
あぁ、こりゃ何かおかしい。
ヘッダのX-XRDS-Locationを確認したり、
xrdsファイルの中身を見てみたりするも解決せず。
ということで一旦断念。
気を取り直して、(ブログでは1行ですが実際はかなり時間が経ってます^^)
ダメもとでもう一度ログインしてみるもやはりだめ。
エラーログを確認してもPHPのエラーは特に出ていない模様。
echoを埋め込みまくり、途中でオブジェクトが空になっちゃってるっぽいことは確認できるも、やはり原因は不明・・・。
なんとなくStore方式をMySQLに変えてみるも効果なし。
(そりゃそうか)
行き詰まりまくったところで、
やっぱエラー出ないのはおかしいんじゃないか、とxamppの設定を疑い始める。
xampp/apache/bin/php.iniを確認してみると…
log_error = Off ←!
!→ ;error_log = "C:\xampp\apache\logs\phperror.log"
な、なんとー!!
ということで、Onにしてコメントを外してみた。
…結局エラーは出なかったけどね。(画面に出すようにしてても出てないんだから当たり前)
この作業自体に意味はなかったものの、これをきっかけにphp.iniの他の設定も気にし出す。(かなり今さら)
案の定extension=php_curl.dllがコメントアウト。
外してApache再起動したら普通にできた。
※ curlが使えないっていうエラーは吐かないんですね・・・。
ぼ、僕の苦労はいったい。。。(動作環境すら見ずに進めたのが悪いんですが。)
ログイン!
ID入力。
成功!!
※ storeをfilesystemに戻したらできなくなったけど、
serverディレクトリの名前を変えたり、
xampp/tmp/_php_consumer_test以下を全部消したりしたら出来た。
認証ミスった時のキャッシュでも残ってたのかな??
以上、無駄に苦労してしまいました。
設定ぐらいは確認してから始めましょうと言うことですね!
Home > OpenID > XamppでPHP OpenID LibraryのOPのexample(Server)を動かしてみる