TypeKey認証を使ってローカルのアカウントにログインできるようにしてみました。
プラグインオプションを変更していますので、旧バージョンを一旦アンインストールしてからインストールを行ってください。
※使い方についてはplugins:typekey[Nucleus CMS Japan Wiki]を参照してください。
† 2007/07/24追記(v1.4.1)
ローカルアカウントへのログイン部分にバグがあり、正しくログインできなかった問題を修正しました。テスト環境が最終版のNucleus3.3ではなかったため、バグを作りこんでしまいました。
動作確認はNucleus 3.3(UTF-8)、PHP 4.4.7環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
† [Fixed] mysql_query()をsql_query()に変更
Nucleus標準の関数を使うようにした。
† [Fixed] ログイン時に動作しないようにした
ローカルアカウントでログイン時にも認証状態がそのままになってしまっていたので、ローカルアカウントでログイン時にはそちらを優先し、外部アカウントからはログアウトされるようにした。
† [Added] ローカルアカウントとの関連付けできるようにした
外部アカウントを使ってローカルアカウントにログインできるようにした。
インストール後、テンプレートのコメント本体のところにすでに記入済みの HatenaAuth と共に TypeKeyAuth を追加してみたら、はてな同様ログイン用のメッセージ文が出ました。ここまで問題なし。
でもログインしてみたら失敗したので、テンプレートから TypeKeyAuth を削除しました。が何故かログインメッセージが表示されたまま。
最初キャッシュのせい?とか思ってサーバー側のキャッシュを無効にしたりサーバーを再起動したりしてみたけど、消えないんですよね。
もちろんプラグインを削除すると表示はされないけど、再度インストールすると、先ほどログイン用のメッセージが表示されてたところに、今度はトークンがセットされてないってメッセージが出ます。確かに再インストール直後はトークンセットしてないので正しい挙動ですが、確か Nucleus 3.3 からはプラグインが無い場合は disallowed とかそんなエラー表示しないようになったから問題ないけど、実際そこではエラーが発生してるわけでちょっと気持ち悪いです。なんとか TypeKeyAuth を取りたいんですが、何か心あたりありますか?
あ、ちなみに HatenaAuth でも同じ。テンプレートのコメント本体のところからとっぱらったのにログインメッセージが出ます。どちらもプラグインの編集でメッセージを変更すると反映されるので、サーバーやブラウザのキャッシュがどうこうってことでは無いんではないかと思ってます。
それからここにコメントするとき TypeKey でログインしてみたんですが、ウェブサイトのところに TypeKey で設定したメールアドレスが表示されてます。多分このままコメント書き込みすると、アカウントのリンク先がメールアドレスになっちゃうのかなぁ?と。
TypeKey のプロフィールの設定ではメールアドレスはもちろん、自分のサイトの URL も設定してあるので、もし TypeKey からどちらも取得できるのであれば、メールアドレスはメール欄、URL をウェブサイト欄に表示するようにした方がいいんじゃないかなぁと思います。Nucleus 3.2x はウェブ欄もメール欄も一緒なので面倒そうだけど ^^;
あ、ちなみに HatenaAuth でも同じ。テンプレートのコメント本体のところからとっぱらったのにログインメッセージが出ます。
あー、これですか。
テンプレートの記述でログインのリンクが出るっていうのは後付けで作った機能なのでちょっと統一感がないんですが、NP_HatenaAuthもNP_TypeKeyもevent_FormExtra()でログインリンクを出しているので、インストールするとコメントのフォーム部分ににログインのためのリンクが常に表示されるようになってます。これはアンインストールしないと消えないので、おそらくこの部分のことですよね。
TypeKey のプロフィールの設定ではメールアドレスはもちろん、自分のサイトの URL も設定してあるので、もし TypeKey からどちらも取得できるのであれば、メールアドレスはメール欄、URL をウェブサイト欄に表示するようにした方がいいんじゃないかなぁと思います。
たしかにこれはそうですね。バージョンアップ版では対応したいと思います。
# うちではNP_HideMailAddr(http://blog.cles.jp/categor...)使っているのでメールアドレス自体は表示されないです。
テンプレートの記述でログインのリンクが出るっていうのは後付けで作った機能なのでちょっと統一感がないんですが、NP_HatenaAuthも NP_TypeKeyもevent_FormExtra()でログインリンクを出しているので、インストールするとコメントのフォーム部分ににログインのためのリンクが常に表示されるようになってます。これはアンインストールしないと消えないので、おそらくこの部分のことですよね。
あぁじゃぁ気にしないでいいわけですね。納得。
あぁじゃぁ気にしないでいいわけですね。
そうです!
# やっぱりノリで仕様を作るのは危険ですねぇ。。。。
メールアドレスがURL欄に入っちゃう問題についてFixしてみました。まだリリースしていませんが、うちのサイトでは一足先に使い始めてみました。
NP_Typekeyを利用させていただこうと考えております。
試験設置で、Sign-Inとコメントは問題がなかったのですが、Sign-Outを試すとリダイレクトが延々続く状態です。
対処方法などありますでしょうか。
rd.phpでずっとリダイレクトしてしまうということですよね。
ちなみにサインアウトのURLが具体的にどのようなリンクになっているのか、教えてもらえますでしょうか?
年末のお忙しいところ対応ありがとうございます。特に急ぎませんので、何か対処方法ありましたらお知らせください。
sign offのリンクは下記のとおりです。
https://www.typekey.com/t/t...
Nucleus 3.41(UTF-8)
blog url http://noiselab.jp/nc/
value-domain+xrea有料
(s266サーバーなのでphp 5.2.5です)
という組み合わせです
ありがとうございます。不具合が確認できました。
NP_TypeKey.phpの351行目付近に下記の部分がありますので、
// Logined
$return_url = $CONF['PluginURL'] . 'typekey/rd.php?action=rd&url='
. urlencode( 'http://'.serverVar("HTTP_HOST") .serverVar("REQUEST_URI") );
このように書き換えてください。
// Logined
$return_url = $CONF['PluginURL'] . 'typekey/rd.php?'. urlencode('action=rd&url='
. urlencode( 'http://'.serverVar("HTTP_HOST") .serverVar("REQUEST_URI") ) );
これで問題なくリダイレクトされるようになるはずです。
ありがとうございます。
NP_TypeKey.phpの該当箇所を書き換えて無事に稼動しました。
Nucleusのシンプル性と拡張性に魅力を感じて導入したものの、
なかなか自分でPHPを書くまでには至らず、
こちらで公開されている便利なプラグインをいろいろ使わせていただいてます。
開発ありがとうございます。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。