まだバグがあるとは思いますが、やっとまともに動くようになったので公開しようと思います。
ドキュメントはwikiのほうでぼちぼちやっていきます。
※使い方についてはplugins:openid[Nucleus CMS Japan Wiki]を参照してください。
動作確認はNucleus 3.3(UTF-8)、PHP 5.2.5環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
† 簡単な使い方
1. スキン中に<%OpenId%>と書く
書いた部分にログインフォームが出るようになります。内容はプラグインオプションで設定できます。
2. コメントのテンプレート中に<%OpenId%>と書く
OpenIdで認証されているときにコメントを残すと、OpenIdのロゴとIdentityが表示されるようになります。
内容はプラグインオプションで設定できます。
† OpenIDとして使えるアカウントの発行元とURL
Yahoo! Japan: yahoo.co.jp
Yahoo!(US): yahoo.com
はてな: http://www.hatena.ne.jp/(アカウント名)/
TypeKey: http://profile.typekey.com/(アカウント名)/
livedoor: http://profile.livedoor.com/(アカウント名)/
※Y!についてはOpenID2.0対応のため、ドメインを入力するだけでOK
OpenID の URL のところに
http://www.hatena.ne.jp/kim...
って入力してログインしたらデバッグ画面が表示されました。
http://yahoo.com でログイン手続きしてみました。これは無事ログインできたようです。
多分、URLの末尾に/が足りないからですね。
http://www.hatena.ne.jp/kim...
にするといけると思います。
# その辺りの判定が意外とシビアなんですよね。。。。。
あ、ほんとだ。今度はうまくログインできた。
ところでプロファイルってアカウントの発行元ごとに別なんですね。
この設定は仮に他で OpenID プラグイン導入したら、共有できるんですか?ってうちで試せばいいのか...やってみます。
プロファイルはNucleusのローカルに保存しているので、Identityごとになっています。
いちおう仕様は暫定なので、もっと良い方法があれば改良したいと思っています。
公開ありがとうございます。
インストール時にSQLエラーとなってしまいます。
mysql-4.0.27は非対応となりますでしょうか?
開発自体はMySQL 5.1でやっていますが、MySQL4でも動作はすると考えています。とりあえず、MySQL4というだけではなんともいえません。。。。
場を借りてテストさせてください。
状況:
OpenID:blog.ptlabo.netのページには、下記タグが仕込んである
<link rel="openid2.provider" href="https://open.login.yahooapi..." />
<link rel="openid2.local_id" href="https://me.yahoo.co.jp/a/うんたらたー" />
<link rel="openid.delegate" href="http://profile.typekey.com/かんたらたー/" />
<link rel="openid.server" href="https://www.typekey.com/t/o..." />
Yahooで認識したみたいです。(期待通り)
先に書いた方優先?
OpenID1.0とOpenID2.0の違いがまだよくわかってないのですが、Yahooはログインしっぱなしなので楽なんです。
先に書いた方優先?
1.0と2.0の表記を両方書いたことがないので検証したことがありませんでしたが、この挙動はOpenIDの処理系依存なのではないかと思います。
Yahooはログインしっぱなしなので楽なんです。
確かにYahooはログインしっぱなしで、確認画面が出るだけですね。
はじめまして。うちの環境もPHP Version 4.3.11で、プラグインインストール時に下記のメッセージが出て、機能しません。
query SELECT * FROM nucleus_plugin_openid_nonce LIMIT 0: Table 'blog3.nucleus_plugin_openid_nonce' doesn't exist
mySQL error with query CREATE TABLE nucleus_plugin_openid_nonce ( server_url VARCHAR(2047), timestamp INTEGER, salt CHAR(40), UNIQUE (server_url(150), timestamp, salt) ): Too big column length for column 'server_url' (max = 255). Use BLOB instead
mySQL error with query SELECT * FROM nucleus_plugin_openid_assc LIMIT 0: Table 'blog3.nucleus_plugin_openid_assc' doesn't exist
mySQL error with query CREATE TABLE nucleus_plugin_openid_assc ( server_url BLOB, handle VARCHAR(255), secret BLOB, issued INTEGER, lifetime INTEGER, assoc_type VARCHAR(64), PRIMARY KEY (server_url(150), handle) ): All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead
OpenIDの処理系依存なのではないかと思います。
livejournal.comのコメント欄にOpenIDログインしようとしたところ、先にコメントした、TypeKeyの方でログインということになりました。(私の想定通りでした。)
なので、2つ並べておくのも悪くないのかもしれません。
こおろぎさん
実はテーブル定義はOpenIDのライブラリのものを使っているんですが、それ自体の問題のようですね。ちょっと修正方法を考えてみます。
UK/US development is here:
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。