2004年05月31日 Mon 00:08

人柱日記その8「救いの神降臨?編」

Ogawa::Memorandaの(o)氏が、
Beta Weblogにて、『人柱日記その7「TypeKey関係?編』の原因を
TypeKey認証後の動作から、推測して、修正の可能性を示唆してくれています。

以下、Beta WeblogでのOgawa::Memorandaの(o)氏のコメントより。
(*途中、スペースの都合上、改行する必要のない部分も改行されています)

Typekeyで認証後の動作を考えてみます。

(1)Typekeyで認証すると
http://.../mt-comments.cgi__mode=handle_sign_in&static=1&entry_id=1
&ts=1085900094&email=XXXX&name=foo&nick=nickname&sig=XXX
を呼び出します。

(2)mt-comments.cgiではnickとsigをそれぞれcommenter_name,
tk_commenterというクッキーに格納し、元のエントリページを呼び出します。

(3)エントリページの中で、
http://.../mt-comments.cgi?__mode=cmtr_name_jsを呼び出します

(4)mt-comments.cgiは、commenter_nameクッキーの値を取得し、
var commenter_name = "XXX"; という文字列を生成します。
クッキーが取得できない場合XXXは空になります。

(5)エントリページでは、
var commenter_name = "XXX"; というJavascript
が実行され、
commenter_name変数にnicknameがセットされます。

(6)さらにエントリページでは、
commenter_name変数がセットされていればサイン・イン状態、
そうでなければサイン・アウト状態と判定して表示します。

(6)で正常に判定されない理由としては以下が考えられます:
 (a)commenter_name変数が正常に設定されていない。
 (b)commenter_name変数が設定されないうちに(6)の判定を行っている。

(a)は、(2)で格納したクッキーを(4)で読み出せない、
つまりクッキーの読み書きの順序が保証されないことを意味します。
そんなことが起き得るのだろうかとかなり疑問に思います。

(b)は、(5)と(6)の処理順序が逆転しているときに起き得ます。
JavaScriptはページの先頭から実行することになっていますから
これも考えにくいです。が、
(5)の処理は(3)(4)の処理後に行われるため実行に時間がかかりますから、
(3)(4)(5)の処理をタイムアウトさせて
(6)を実行してしまうことがブラウザによってはあるかもしれません。

もし、(b)だとすると、Individual Entry Archiveの

<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?
__mode=cmtr_name_js"></script>

を以下のように変更するとうまくいくかもしれません。

<script type="text/javascript"><!--var commenter_name = getCookie
("commenter_name");
// --></script>

大体、下記2箇所の下あたりにあります。

1)エディタ等で見ると大体166行目あたりになります。

<MTIfNonEmpty tag="MTTypeKeyToken">
<div id="thanks">
<p>サイン・インを確認しました

2)エディタ等で見ると大体214行目あたりになります。

<MTElse>
<MTIfNonEmpty tag="MTTypeKeyToken">

以上の修正で、私の設置したMT3.0DE-jaはサイン・イン/アウト共に
普通に動作するようになりましたが、
あくまでこれは、私の環境下(サーバ、OS、ブラウザ等)におけるものであり、
Beta Weblogでは、私も問題なく、サイン・イン/アウトできていますので、
以前のエントリ『MT3DEの日本語版ベータ現在のバグ状況』と同様、
これらは、私の判断の基、
MT3DEの日本語版ベータサイトのバグ・レポートより抜粋・再編集したものであり、
米シックス・アパート社、及び日本法人であるシックス・アパート株式会社には、
一切の関係・責任はありません。

なお、これら解決方法の例は、公式のものではなく、
また、どのようなエラーが出るかは各環境下において、違う場合がありますので、
私の環境下でも試しましたが、他の環境下においては、
これらによって、トラブルが起こる可能性があります。

必ず、バックアップをとるなどしてから、
自己責任において、実行してくださいますようお願い申し上げます。

トラブルが起きましても、当サイトでは、一切責任を負いません。
また、ご参考にさせていただいたサイトはトラブルに関し、一切関係ございません。

また、これらは、MT3DEの日本語版ベータにおけるものであり、
今後のバージョンアップや、正式版リリースにより解決されると思われます。

以上を理解し了承した上で、試される方は、お試しください。

Posted by tugaa | Comments (0) | Category( MovableType )
このエントリのTrackBack URL:

このエントリのPermalink:
  このエントリーをブックマークに追加 
Trackback
Title: TypeKey認証 続き
from: nil blog
Excerpt: TypeKey認証 続き [Read More]
Tracked on 2004年07月28日 10:16
Title: TypeKey IDでのサイン・イン
from: be natural
Excerpt:

自分はMac環境メインなので、気づかなかったのですが、WinXP+IE6の環境では TypeKey IDでサイン・インをしても「サイン・インを確認しました」と表示されません。

[Read More]
Tracked on 2005年04月25日 15:21
Comments