○ これは
XOOPS 2.0.16a をはてな認証に対応させるモジュールです。
○ 動作確認環境
・Vine Linux 4.1
- Apache 2.2.3
- MySQL 5.0.27
- PHP 5.2.3
- XOOPS 2.0.16a JP
AltSys (無くても良い)
sysutil (無くても良い)
・WindowsXP SP2 (XAMPP)
- Apache 2.2.4
- MySQL 5.0.41
- PHP 5.2.2 & PHP 4.4.7
- XOOPS 2.0.16a JP
AltSys (無くても良い)
sysutil (無くても良い)
また、はてなからのデータを解析するために以下のいずれかの関数、ライブラリ
が必要です
・php_json(json_decode関数)
(PHP4の場合は http://www.aurore.net/projects/php-json/ から拡張で導入)
・simplexml関数
・domxml関数(PHP4)
・DOMDocumentクラス(PHP5)
・JSON.php
・PEAR/Jsphon
○ インストール
アーカイブを展開し、modules ディレクトリへコピーして、モジュール管理から
インストールしてください。
○ アップデート
ファイルを上書き後、モジュールアップデートしてください。
今回のバージョンもテーブル構造が変更されています。
○ アンインストール
通常通りモジュール管理からアンインストールしてください。
ただし、アンインストールした場合、はてな ID と XOOPS ID の関連付けは消滅
します。
パスワードを使用不可にしているユーザはログインできなくなってしまいます
ので、使用不可に設定されているユーザにはパスワード紛失手続きをとっても
らう必要があります。
unameフィールドを拡張した場合は元には戻りません。
○ 機能
・はてな認証からユーザ登録ができます
・既存のユーザをはてな認証化できます
・はてなのプロフィール画像をダウンロードし、アバターに設定できます
・パスワード認証を使用不可にして、はてな認証のみにできます
○ とりあえず動かす
1、管理者メニューの [はてな認証] → [各種情報] でコールバック URL を確認し、
はてなの認証 API ページで取得済みAPIキーのコールバックURLに設定
2、はてなの認証 API ページで確認し、[はてな認証] → [一般設定] で API キー、
秘密鍵を設定
3、ブロック管理ではてな認証ブロックをゲストに表示する設定にする
(ゲスト以外に表示する設定をしてもゲストのみにしか表示しないようになっ
ています。)
○ ユーザの認証方法
1、ゲストのトップページにはてな認証のページへのリンクが表示されますので、
クリックします。
2、するとはてなの ID、パスワード入力ページもしくは認証許可ページへ飛びま
す。はてなのログイン状況や、許可済みアプリケーションの登録状況により
変わってきます。
3、XOOPS のページに戻るので、XOOPS のユーザ名、メールアドレス入力をして登録
完了です。
設定によってはユーザ名、メールアドレスの登録不要にすることも可能です。
登録済みの場合はそのままログインになります。
関連付けの場合は、確認フォームになり、承認すると関連付けがなされます。
○ 設定項目
・APIキー
はてな認証のページで確認してください
・はてなへのURLをリダイレクトにする
一旦XOOPSのページをはさんではてなの認証ページへ転送します
・ログインフォームを同じブロックに表示する
はてな認証のログインブロックにデフォルトのログインフォームを表示します
・sysutilのディレクトリ名
sysutil を導入している場合指定してください。ログインフォームが sysutil
のオートログインのものになります。
・新規登録時にユーザ名(uname)を自動で割り当てる
はてなIDの頭に”hid:”を付加して自動的にユーザ名を割り当てます。
この機能を使用するには以下の設定を行ってください。
- ユーザ情報設定の『ユーザ名として使用可能な文字の設定を行います。〜〜』を『強』
に設定して記号をユーザ名に使用できないようにする
- 『unameフィールドを拡張』でunameフィールドサイズを36にする
これらの設定がされていないとこの機能は有効になりません。
また、自動で割り振られたユーザ名は関連付けの解除はできません。
・新規登録時のメールアドレスの未入力を許可する。
XOOPS本体の「アカウント編集」メニューでは従来のまま入力必須になってしま
いますので、ミニ白扇等でメールアドレスの未入力を許可するように変更する
などしてください。
・unameフィールドを拡張
別メニュー項目にあります。
XOOPS コアの users テーブルの uname フィールドのサイズを 36 に変更しま
す。
すでに 36 以上であれば、実行する必要はありません。
○ 『unameフィールドを拡張』する場合の注意
はてなの ID 文字数が 32 文字に拡張されたことに伴い、やむなく XOOPS コアの
users テーブルの uname フィールドのサイズを拡張する機能を追加しました。
フィールドサイズを拡張することでおそらく問題ないとは思いますが、すべての
モジュールに関してその保障はできません。
また、はてな認証モジュールをアンインストールしても元には戻りません。
これは、25 文字を超える uname で登録されてしまっている場合、不都合が生じ
るためです。
ちなみに何らかのモジュールなどで uname フィールドのサイズが 36 以上になっ
ている場合は拡張する必要はありません。
○ ブロック
ログイン用のブロックです。
設定によって既存のログインフォームを同じブロックに表示することが出来ま
す。
モジュールindexへのリンクです。
メインメニューに表示させたくない場合にご利用ください。
○ XOOPS Cubeについて
モジュールの互換レベルで動くことは確認しましたが、まだ動作確認は不十分です。
もし使ってみておかしい部分があればご連絡ください。
ちなみに、sysutil の部分は cubeUtils に置き換えることができます。
○ 実装方法について
パスワードはMD5エンコードされてない文字列になります。
MD5 エンコードされない文字列を直接入れることで、通常のパスワード認証をで
きなくしています。ちょっとトリッキー?
これにより、なんらかの影響が出てしまう可能性がありますので、気をつけてく
ださい。
○ はてな認証APIについて
はてな認証APIについては公式情報をご確認ください。
http://auth.hatena.ne.jp/
○ その他
コアの改造無しでモジュールのみの認証ということで、結構制限もありましたが、
なんとか形になりました。初モジュールということでいろいろと勉強になり良か
ったです。当初の予定とは違って結構大掛かりなものになったような気がします。
モジュールディレクトリ名変更に対応しているつもりですが、無保証です。
ここだけの話、英語版メッセージはいい加減です orz
できればユーザ ID に使用可能な文字数をはてなに合わせて 15 文字以上にした
方が良いでしょう。
2007/07/05、とうとうはてなIDの仕様が変更されてしまいました。
コアに手を加えないというのも限界になってしまい、テーブル構造だけ手を入れ
る修正をさせてもらいました。(一応、改造ではないというつもりです。)
○ ToDo
・他認証サービスの統合
・XOOPS Cube preload対応
○ 使用条件
利用について商用、非商用特に制限はありませんが、著作権は放棄しません。
また、これを利用したあるいは利用しなかった損害について作者は責任を負いま
せん。
○ 履歴
・2007/07/08 Ver.0.30
- はてなIDの文字数32文字化対応でusersテーブルのフィールド拡張機能
- xoops_redirect パラメタ対応
- 他、細かい部分の修正
・2007/06/14 Ver.0.21
- 承認待ち状態のときにはてな認証してしまった場合の不具合の修正
・2007/06/11 Ver.0.2
- ユーザ名自動割り当て機能
はてなIDの頭に”hid:”を付加して自動的に割り当てることができる
- メールアドレス空欄許可機能
- on_installのディレクトリ自動判別化
- hatenaauth_block_tool.html をただのリンクにした
id="mainmenu"がバッティングしていたため。デザインが必要ならテンプレートを編集してください。
- 処理ごとにファイルを分けたりと、今後の拡張のための布石(のつもり)
- PHP 4.4.7での動作確認
- アバターダウンロード後のuserinfo.phpへの転送がルートパス固定だったのを修正
- Authorizationという表記をAuthenticationに統一した
・2007/05/30 Ver.0.1
- 細かい部分の修正
・2007/05/23 Ver.0.1 RC2
- XoopsHatenauserHandler の不具合修正
- Hatena_API_Auth でXMLのデコードに対応
- user.php の不具合修正
・2007/05/23 Ver.0.1 RC1
Ver.0.01から大幅に変更されているので詳細は割愛
・2007/05/11 Ver.0.01
原理確認版
とりあえずの動作
○ 配布元
http://chizuru.bunkasha.co.jp/~kisara/
作者:きさら