勢いで作ってバグ等がそのままになっていたNP_OpenIdをバージョンアップしました。
データベース周りのバグフィックスと、使い方が分かりにくいという話の多かったプロフィール管理をYUIを使ったインタフェイスに書き換えてみました。これでだいぶ実用になるのではないかと思います。
※使い方についてはplugins:openid[Nucleus CMS Japan Wiki]を参照してください。
動作確認はNucleus 3.31SP1(UTF-8)、PHP 5.2.6環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
† 2008/06/10追記
いくつかBugfixを行ってv1.1.1としました。
† アップデート方法について
プラグインオプション、その他もろもろのファイルが変更になっていますので、
1. 旧プラグインを管理画面からアンインストール
2. 旧プラグインのファイルをサーバからすべて削除
3. 新プラグインのファイルをサーバに配置
4. 新プラグインを管理画面からインストール
という手順をとることをお勧めします。
† [Changed] テンプレートをプラグインオプションから、ファイルベースに変更
テンプレートをプラグインオプションではなくファイルで設定するように変更しました。
これにより言語別にテンプレートが構成できるようになっていますので、メッセージを日本語化しました。
† [Changed] Profileの変更にYUIを使うようにした
プロフィール管理を個別の画面ではなく、YUIを用いてAJAX化してみました。
† [Fixed] テーブルの作成に失敗する問題に対応
インデックスの問題によりテーブルの作成に失敗する問題に対応しました。
MySQL4.1でテーブルが作成できることを確認してあります。
† [Fixed] XSS問題を修正 (v1.1.1)
名前、もしくはE-mailに不適切な文字列が含まれる場合にXSSが発生する可能性がある問題に対応しました。
† [Fixed] 必要のないCookieを廃止 (v1.1.1)
処理に必要のないCookieを廃止しました。
この変更による機能的な変化はありません。
おお、ばっちりですね。
名前に漢字も通るようになりました。お疲れ様です。
でもOpenID認証してもreCAPTCHA必要なんです?(^^;
早速テストしていただいて、ありがとうございます。
でもOpenID認証してもreCAPTCHA必要なんです?(^^;
あれ、外れてませんね。。。。
本当は出ないはずなんですが。。。。
藤咲さんのコメントもOpenIdのURLがついていないのでおかしいなと思っていろいろ調べてみたのですが、CACHEMAMAGERがちゃんとflushされていないという問題でした。現在はログインするとrecaptchaは表示されないようになっています。
それはともかくYUIはかなり使えそうですね。
NP_OpenIdはほとんどサンプルそのままですけど、使いこなせればかなり面白い使い方ができそうですよ。
かなり遅れてテスト
head.incに書き込むのはやっぱ好くないかなぁ…
ああっ!ごめんなさい
上のも僕です orz
お久しぶりです!サーバ復活さっき分かりました。
head.incに書き込むのはやっぱ好くないかなぁ…
OpenIDのDelegateの部分ですか?
自分のURLで認証しようとするとどうしてもそうなりますよね。
導入して試してみているんですが、うまく認証できないでいます。
Firefoxだとrd.phpファイルのダウンロード画面が出る状態で、IEだと一発目が「サーバーが見つからないか、DNS エラーです」になってしまいます。
そのままリロードすると「NP_OpenId Error: Missing OpenID identifier.」になります。
NP_MagcalURL2のせいなのかとも思いますが、リロードする際のURLを通常のURL形式で行ってもエラーのままでした。
何か他に見るところがありますでしょうか?
ちょっとfjskさんのサイトで試してみたら下記のエラーが出ていました。
Fatal error: Define Auth_OpenID_RAND_SOURCE as null to continue with an insecure random number generator. in /path/to/sharedlibs/Auth/OpenID/CryptUtil.php on line 52
もしかしてインストール先のサーバがWindowsだったりしますか?とりあえず、NP_OpenId.phpの先頭に下記のコードを挿入してみてください。
if ( is_readable('/dev/urandom') ) {
define('Auth_OpenID_RAND_SOURCE', '/dev/urandom');
} else {
define('Auth_OpenID_RAND_SOURCE', false);
}
いえ、coreserverなのでLinuxです。
とりあえずコードの挿入をしてみたところ、
Warning: is_readable() [function.is-readable]: open_basedir restriction in effect. File(/dev/urandom) is not within the allowed path(s): (.:/virtual:/tmp:/usr/local/lib/php:/usr/local/php/bin)
というエラーがフォーム、ログイン失敗画面の両方に出ています。
うまくいかない症状に変化はありませんでした。
了解です。
Linuxでもopen_basedirがかかっている場合があるんですね。
それでは下記のコードだとどうでしょうか?(@を追加しただけです。)
if ( @is_readable('/dev/urandom') ) {
define('Auth_OpenID_RAND_SOURCE', '/dev/urandom');
} else {
define('Auth_OpenID_RAND_SOURCE', false);
}
Proxy内からの接続なので、エラーが変わってますが、Firefoxでは
Server Error
The following error occurred:
[code=SERVER_RESPONSE_CLOSE] The server closed the connection while reading the response. Contact your system administrator.
IEでは一発目が
HTTP 500 - 内部サーバー エラー
で、リロードするとやはり
Missing OpenID identifier.
です。
ステータスは200 OKが帰ってきているようですが、HTTP Bodyが空になっていますね。
多分、ライブラリ中で何らかのエラーが発生して、落ちているだと思います。
error_logを確認することはできますか?
あとはデバッガを当てたりしないと原因を追跡するのは難しいかもしれません。
error_logを確認することはできますか?
.httaccessでdisplay_errorsをONにしたりと試してるんですが、エラーログが出力されません…。
こんな話もあるので
http://sb.xrea.com/showthre...
もしかしてエラーログ出力が出来ないのだろうか…。
と言っても上のリンクでOKだという
display_errors 1
でも表示されないのですが…。
というか、OpenID認証のライブラリは共通なんだし、他の事例を見れてみればと調べてみましたらありました。
http://www.xugj.org/modules...
http://blog.oovch.net/artic...
http://dounikanarublog.com/...
どうやらcoreサーバ側の問題みたいです。これだけ情報があっていまだに改善されてないってのは期待薄っぽいですね…。
1つのNucleusでまったく別のドメイン(サブドメインでもなく全く違う)を運用しているのですが、Nucleus管理画面とは違う方のドメインだと、テンプレートの{{url|}}で、
return_url=%2Fitem_0.html
になってしまいます(MagicalURL時)。
むしろ別ドメインの方でこそ使いたいんですが、難しいですか…?
なるほど。。。。
全く別のドメインで1つのNucleusを使うという想定はしていませんでした。
ちょっと確認してみます。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。