Born Neet
XamppにPHP OpenID Library入れてopenid.ne.jpのIDで認証する
- 2009-01-17 (Sat)
- OpenID
ところまでやりました。
というわけで、唐突にOpenIDのお勉強をしています。
いろいろ用語がややこしくてイマイチ理解できてません。
とりあえず、いじってりゃそのうちわかるだろ、ってことで手を動かしてみます。
使ったのは、ご存知xampp(win)とPHP OpenID Libraryです。
手順とか
DLからHello,OpenIDまでのメモ。
なお今回は、RPのみです。(OpenIDを利用する側)
OP(OpenID発行側)は次回の予定です。
※ 僕はConsumerとProviderっていう用語を主に使ってます。(わかりやすいので)
インストール
xampp(win)はインストール済みってことにします。
僕の使ったのは1.6.6aでした。
※ vistaを使っている人はProgram Filesにインストールしないように気をつけてください。(C直下とかにしましょう)
設定ファイルとかがすぐ戻っちゃったりして面倒なので^^;(たしか)
次に(or 最初に)PHP OpenID Libraryからver2.0をダウンロードしてきて、xampp/htdocsにコピーします。
ディレクトリ名はopenidにでもしておきましょう。
(URL入れるたびにphp-openid-2.1.2とか打つのはしんどいので)
インストールは以上です。
OpenID取得
怪しいとか、怪しいとかいろいろ言われてますが、
所詮テストなのでOpenID.ne.jpで取りました。(捨てアカウントにはむしろちょうどいいでしょう)
メールアドレスだけでOKでした。
ユーザ名.openid.ne.jpがIdentifierです。
認証まで
http://localhost/openid/examples/consumer/にアクセスして、
Identifierを入力して、Verifyをクリックします。
(PAPEがどうのこうのは無視で。なんかOP側のセキュリティ対策がちゃんとしてることを要求する時に使うみたいです ※)
※ OpenIDに欠けている「評判情報」 - @IT
はい、無事ログインできましたね。
・・・で終わればよかったんだけど、そうはいきませんでした。
Warning: mkdir() [function.mkdir]: No such file or directory in C:\xampp\htdocs\openid\examples\consumer\common.php on line 57 Could not create the FileStore directory '/tmp/_php_consumer_test'. Please check the effective permissions.
なんていうエラーが。
全然OpenIDとは関係ない記事ですが、XAMPPにSmartyをインストールして、HelloWorldを出力させるまで(PHP) | Web&MUSICブログ QUALLを参考に、
C:\xampp\htdocs\openid\examples\consumer\common.phpの53行目あたりを、
// $store_path = "/tmp/_php_consumer_test";
$store_path = "/xampp/tmp/_php_consumer_test";
に直しました。
xamppって絶対パスに弱いんですよね^^
(windows上だからしかたないと思うけど)
よし、これでOKと思いきや、次は、
Fatal error: Define Auth_OpenID_RAND_SOURCE as null to continue with an insecure random number generator. in C:\xampp\htdocs\openid\Auth\OpenID\CryptUtil.php on line 53
とか言われてる…。
これはずばり解決策がすぐ見つかった(PHP OpenID Library を使ってみた - F.Ko-Jiの「一秒後は未来」)ので、
C:\xampp\htdocs\openid\Auth\OpenID\CryptUtil.phpの23行目付近を、
// define('Auth_OpenID_RAND_SOURCE', '/dev/urandom');
define('Auth_OpenID_RAND_SOURCE', NULL);
にすれば、OK。
わりとつまづきましたが、これでOpenIDで認証できるようになりました。
結果↓
openidでログイン!
認証を許可。
成功!!
以上、ただexampleを動かしただけでした。
いろいろ酷評されがちのPHPですが、新しいことをサクッと試してみたい時にはかなり便利ですよねー。
(詳しく知らなくてもとりあえず動くので^^)
OP(Provider)編もこうご期待!?
JavaScriptのinstanceofをisArrayに使っていいの?
- 2009-01-13 (Tue)
- JavaScript
以前JavaScriptで配列かどうか調べるなんて記事をろくに調べずに書いたんですが・・・(手元で実行できるか試しただけだった)
Ajaxian ? isArray: Why is it so bloody hard to get right?
のような記事が定期的に話題になるのでふと気になった。
(そういえば、JavaScript: The Good Partsでもこのトピックを扱っていた)
「もしかして、instanceofって非推奨な演算子なのか?」と。
以下調べた結果です。
JavaScriptのinstanceofは遠慮なしに使っていいものか? - 檜山正幸のキマイラ飼育記
同じテーマの記事を発見。
instanceof が使えるのは「JavaScript 1.4 から」らしいですが、 version ≧ 1.4 は普通に仮定していいことなのだろうか?
また、コメント欄(Kuwataさん)より、
現状で JavaScript に対応しているアプリケーションは 大抵 JavaScript 1.5 というか ECMA-262 第三版に対応しているので、 version ≧ 1.4 だと仮定しても問題ない
とのこと。
JavaScript 第5版には普通に書いてあったし、
たぶん大丈夫そうだけど…もうちょっと調べてみる。
instanceofはJavaScript1.4以降?(Firefox編)
まず、「instanceofが1.4から」のソースを探してみる。
お、あった→Determining Instance Relationships - MDC
で、さらにJavaScript - Wikipedia(2009年1月12日 22:47:33)によるとFirefox1.0でJavaScript1.5らしいので、
Mozilla系は使えると考えてよさそう。
IEのJavaScriptバージョンはよくわからん
お次はIEです。
Version Information (Windows Scripting - JScript)なんていう今日の日のためにあるようなページを発見。(via What's new in IE6)
これによるとinstanceof OperatorはJScript5.0でサポートされているとのこと。
さらに、JScript5.0はMicrosoft Internet Explorer 5.0で実装されてるということで、
こちらも問題なしですね!
結論
どうやら使ってもよさそうです。
え?他のブラウザ?
…また今度で^^;
っていうかこれ調べてて気づいたけど、
無名関数を作るときにおなじみのvar f = function()...もJavaScript1.5以降だし、
for...inもJScript5.0以降なんだねぇ。
instanceofが使えないなら今のモダンJavaScript全滅なんじゃ。。。
その他参考
主に1.4か?のソース探しの時に見たサイトです。
なぜかなかなかMDCの該当個所に辿り着けなかった。。。
anything from here jQueryインクルード時の挙動を追跡する ──jQuery解読(4)
JavaScript入門(記述法)
※ 投稿時間を20分ごまかして13日分の記事を稼ぐという姑息な…
追記(2009/01/13 07:05)
あれ?トラックバックが送れてない?
一応再送信しときます。
多重送信になってたらすいませんm(_ _)m
TB送信、RSS送信が多くある場合に起こるエラーとなっております。 これらが一定期間に一定数を超えてしまった場合、 スパムを行っているとプログラム側で判断し、 以降の送信が出来なくなります。 その制限は、最後のエラーログから24時間で解除されます。
これに引っかかったっぽいな。(ヘルプ - NINJA TOOLS)
相手がいなかったりでping送信エラーが何件か出ちゃってたせいかな?
それとも去年のTODOリスト整理で連投してたからか?
今さらブログSEO
- 2009-01-12 (Mon)
- Web
なかなかホッテントリ入りできないブロガーが読むべき27のコツまとめ
なんて記事を一応読んでみたので。
最近はあんまりはてなのhotentry入りしたいとかは思わなくなってきましたけどね^^;
(忍者ブログといえばBorn Neetという位置を狙って行きたい?)
で、何をやったかというと、以下の2サイトに登録しました。
これらのサイトはTechnorati等と違って、登録しないとpingを送っても意味がないようです。
なんと、BlogPeopleにいたっては1年以上もpingだけ送信していました。。。
(忍者ブログのデフォルトping送信先に入っているため)
というわけでさっさと登録しておきました。
(bornneetで検索して0件はさすがに凹む)
とりあえず、反映されるまで様子見です。
ブログ村の方も登録はしたんですが、何と人力で審査しているようです。
ちゃんとしてますねー。驚きです。
なのでこっちは審査結果待ちです。
(ブログ村は登録しないとping送信先がわからないっぽい。
どうやら「http://ping.blogmura.com/xmlrpc/ユーザ毎の文字列」らしいけど)
⇒ 投稿せずに放置してる間に本登録のメール来た。速ぇ、、、自動?
pingのURL形式は予想通りでした。
以上、新年でブログを始めた人の参考に…ならないな。
navitimeletを修正。
- 2009-01-12 (Mon)
- bookmarklet
navitimeを検索するというだけのブックマークレットなんですが、
わりと使ってます。
で、なぜか全角スペースで駅名を区切れなくない仕様だったので直しました。
最新版はこちら↓
navitimelet
とりあえずこれで必要十分かな。(僕としては)
画面内の全checkboxをチェックするbookmarklet
- 2009-01-11 (Sun)
- bookmarklet
引き続き昨年のTODOリストを処理中です…。
ページ内の全てのチェックボックスをチェックするという、ただそれだけのブックマークレットです。
ただ僕には必要だったんです。
(あえて名前はいいませんが某IT系資格申込サイトなんて、もう何回利用規約に同意させるんだと!)
checkall
以上、僕と同じイライラを感じている方はぜひ。
あ、早速無駄に短縮化してみました。
みじかすぎてあんまり効果ないけど。。。
- Search
-
Loading
- Feeds
- Links
- スポンサードリンク