Home > 2009年05月

2009年05月

OpenIDでプロフィールの入力補完(名前とかメールアドレスとか)

「OpenIDって何が便利なの?」というよくある質問への回答のひとつになれば・・・。
(そんな大それたもんじゃないけど。)

これぐらいの軽い機能なら、 ソーシャルなサービスを利用 or 提供しない人にも恩恵があるかなぁと思います。
(ネットをガシガシ使わない人にはなかなか便利さがわかってもらえないので…)

というわけで作ってみました。

「OpenIDでプロフィールを簡単に入力する」サンプルです。

情報の取得はSREGでやりました。
2.0の時代だからAXでやる方がいいんだろうけど、対応してるOPが多そうだったので。
まぁ、結局まともに使えそうなのは、Verisign PIPぐらいでしたが。
(あとはopenid.ne.jpがnickname,fullname,emailを取れました。その他の代表的なとこは失敗。XRIは試してません。)
AX版も余裕があればやってみます。

本来こういう使い方の時は、"checkid_immediate"で非同期にやって、
駄目なら新しいウィンドウとかで"checkid_setup"した方がいいかとも思ったんですが・・・。
初めて住所入力するサイトに認証を許可してるわけないし、
どうせOPは属性情報渡す時は許可を得る必要があるだろうから、意味なしと判断してやめました。

ので、何かウィンドウが開いて鬱陶しい点についてはご勘弁下さい。

2009/05/17 10:50追記

submitボタンが「register」になってたのを修正しました。
僕としては資料請求とか、Q&Aとかそういう一度限りなやつを想定してたので、
(っていうか登録するなら普通の使い方すればいいし)
「request」に変更しときました。

あと、OpenID User Interface Extensionってやつにそってポップアップとかやった方がいい気がするので考え中です。

2009/05/17 11:50

微妙にポップアップの仕様にしたがってみました。
ライブラリがまだよく理解できてないので応急処置ですが…。

PR

WiresharkでOpenIDのお勉強

仕様のお勉強にはシーケンスを見るのが一番ということで。

環境構築

まずは、Wiresharkをダウンロード。
インストールは全部Nextで。

次にOpenIDの環境を整える。

わかりやすいように、
localhost/openid/test/rp/
localhost/openid/test/op/
って構成で作ります。
(ディレクトリ階層を減らすとexamplesのコードを変えないといけないので若干冗長です)

■ RP/OP共通
 ○ OpenID EnabledからPHP OpenID Library Version 2.1.3をダウンロード&解凍。
 ○ openidにリネームしてドキュメントルートに配置。
 ○ openid/examplesをtestにリネーム。
 ○ Auth/OpenID/CryptUtil.phpの
  「define('Auth_OpenID_RAND_SOURCE', '/dev/urandom');」を
  「define('Auth_OpenID_RAND_SOURCE', NULL);」に。

■ RP
 ○ examples/consumerをrpにリネーム。
 ○ rp/common.phpの
  「$store_path = "/tmp/_php_consumer_test";」を
  「$store_path = "_php_consumer_test";」に。
 ○ _php_consumer_test内を書き込み可能に。(必要なら)

これでRPは完成。
localhost/openid/test/rp/でアクセスできる。

■ OP
 ○ examples/serverをopにリネーム。
 ○ op/config.phpを作成。(内容は以下)

<?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/test/op/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("_php_server_test");
}

?>

 ○ php.iniのextension=php_curl.dllのコメントアウトを外す。
 ○ op/index.phpの
  「header("Location: server.php");」を
  「header("Location: http://localhost/openid/test/op/server.php");」に。
  (http://localhost/openid/test/op/をOP Identifierとして使えるように。)

これでOPも完成。
アクセスはlocalhost/openid/test/op/で。
※ config.phpとindex.phpはURLが変わる度に修正する必要ありですね。

キャプチャ

さて、いよいよキャプチャです。

って言っても超簡単ですが。

Wiresharkを起動し、Capture→Interfacesから、
キャプチャしたいインタフェースをStartすればOK。

RPにアクセス→OPで認証までやったら、Capture→InterfacesからStop。
これでデータ取得完了。

あとは、Filter: ip.addr==アクセス先のIP等でApply、 Protocol列クリックでソートすれば上からHTTPのデータを見れます。

はまったところ

localhostへのアクセスがキャプチャできず。
いろいろ試してみるも、結局断念。

PC3台を動員し、なんとかDirect Communicationのデータも取得できました。
需要あれば公開します。
(僕自身まだ全然中身見れてないけど^^)
※ localhostをキャプチャしようとNW設定いじってたらネットできなくなった
  …なんてことになったら、route -f&再起動で直るかもしれません。

以上、長駄文続きですいません。

Win上のCentOSにApache/PHP/MySQLを入れてCakePHPを動かすところまで

やった。

WEB+DB PRESS Vol.50にCakePHP+OpenIDのサンプルが載ってて、動かしてみたくなったので。
フレームワークはあんま得意じゃないことだし、リハビリがてらお勉強。

以下手順。
久々なので文章がおかしいのはご勘弁。
(あとなんか情報抜けてるかもなのでお気軽に突っ込んで下さい)

CentOS導入

VMWare Playerはインストール済みなので割愛。

CentOS 5.3仮想マシンをダウンロード&解凍。
VMWare Playerからこのファイルを開けば起動できちゃう。
(ログインはroot/bagsideで)

なんとお手軽な!

ちなみに上記のサイトはCentOS以外にもいろいろ仮想マシンが置いてあって超便利です。

お次はApache/PHP/MySQL

インストール

yum -y install httpd php php-mysql mysql-server

Apache設定

vi /etc/httpd/conf/httpd.conf

修正
ServerName localhost:80
AllowOverride All(<Directory "/var/www/html">内)

追記
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php

MySQL設定

パスワードはサボって空白のまま。なので設定なし。

mysql -u root

からSQLを叩いてデータベース・テーブルを作成。
作成後は、

use DB名;
desc テーブル名;

で確認できる。

起動

/etc/init.d/httpd start
/etc/init.d/mysqld start

CakePHP導入

ダウンロード・展開
wget http://cakeforge.org/frs/download.php/717/cake_1.2.3.8166.tar.gz/donation=complete
tar -zxvf cake_1.2.3.8166.tar.gz

リンク・権限
ln -s /root/cake_1.2.3.8166/app/webroot /var/www/html/cake
chmod 755 /root
chmod 757 /root/cake_1.2.3.8166/app/tmp
chmod 757 /root/cake_1.2.3.8166/app/tmp/cache

設定
vi /root/cake_1.2.3.8166/app/config/database.php
ID・パスワード・DB名を設定

とりあえずこれでhttp://localhost/cake/にアクセスすれば動く。

Web+DB Pressのサンプルを動かす

wget http://gihyo.jp/assets/files/magazine/wdpress/2009/50/WDB50-PHP01-openid-bbs.zip
ungip WDB50-PHP01-openid-bbs.zip
mv wd50 /var/www/html

http://localhost/wd50/openid_bbs/で動作。

めでたしめでたし。

オマケ:telnetでホストOSからアクセス

※ セキュリティ上ダメダメなので注意!

yum -y install telnet-server

vi /etc/hosts.allow
追記
in.telnetd : xxx.xxx.xxx.xxx

vi /etc/securetty
追記
pts/0

vi /etc/pam.d/remote
コメントアウト
#auth       required     pam_securetty.so

/etc/init.d/xinetd restart

ifconfig
このIPアドレス表示を使う

これでWindows上からTeraterm等でrootログインできます。

以上、あぁやっぱり時間空けちゃうとブログ能力落ちるなー。

Googleの検索結果に投票機能が!?

  • 2009-05-05 (Tue)
  • Web

ページタイトルの右に順位UP/除外のボタンが・・・!


なんて驚いてみたけど、labsの方で昔からやってたのか。

そういやこの記事を当時見た記憶があるかも。

それにしてもGoogleなんか迷走してる?

Google AppがJavaに対応したりでやっぱGoogleやるなって感じだけど、
本業の検索エンジン周りはあんまりパッとしないような…。

[追記]

SearchWikiっていうのか。
投票機能っていうか、パーソナライズな感じかな。

…どうやらだいぶ前から提供してるらしい。
全然気づかなかったなぁ、恥ずかしい限りです^^

[さらに追記]
正式公開は5月7日だったようですね。
詳しくはこちらから→ASCII.jp:新Google検索にSEO/SEM業界は大困惑?

ブログ再開

お久しぶりです。tnantokaです。

実に約1ヶ月半ぶりの更新となります。
ここ最近バタバタしておりまして、
とてもブログに手をつけていられる状態ではありませんでした。

その間いろいろと考えさせられることもありましたが、
とりあえず復帰することにしました。

まずはリハビリがてら旧LighediTor(名前変えるつもりです)のメンテでもやろうかなぁと思います。
あとOpenIDは仕事でも使うので引き続き。

今後徐々に更新頻度を戻していきますので、
改めてよろしくお願いしますm(_ _)m

Home > 2009年05月

Search
Loading
Feeds
Links
スポンサードリンク

Page Top