『 Form認証っぽい JavaScript 』 Ver.1.0

■ 制作経緯 ■
WEBサイトに特定ユーザー領域(ユーザー名とパスワードの認証が必要なディレクトリー)を作ったまではいいけど、
ログインさせる際に表示されるダイアログをカスタマイズしたいと考える人は多いと思います。
 
┌(^o^)┐  こんなヤツが表示されますね。  ┌(^o^)┐

 
実際、それを実現させるには ホスト(HTTPD) のコンフィグレーションで Form認証の設定をしてダイアログの代わりに表示されるオリジナル・デザイン・ページを用意すればいいのですが、コンフィグ設定なんて面倒クサイし、アドミニストレータへの許容状況確認も面倒だっと、いう考えから バーチャ的に Form認証してるっぽく見える スクリプト付きHTML を作ってみました。
■ 取りあえず使ってみる ■
メモ帳などエディタと呼ばれるソフトを起動して authorize.html を読み込み、下図の箇所を実際に Basic認証設定されたURL情報に書替えてください。 その際、http:// の部分は入力しないでください。
 
┌(^o^)┐  反転部分のテキストを書替えます。  ┌(^o^)┐

 
書替えが終わったら上書きで保存して authorize.html のファイル名を好みの名前に変更し、FTPクライントソフトを起動してWEBサーバーにアップロードしてください。 (文字コードは Shift-JIS です)
■ 注 意 ■
authorize.html を特定ユーザー領域に FTP でアップロードしても意味がありません。
必ず一般アクセスが可能な領域にアップロードし、そこから特定ユーザー領域にログイン?するようにしてください。
なお、使用するブラウザーの種類や設定によってはスクリプトが全く作動しないケースもあります。
■ デザインを変える ■
メモ帳などエディタと呼ばれるソフトを起動して authorize.html を読み込み、下図のタグを変更するコトでデザインのカスタマイズが可能です。 但し、HTML のタグには " でサンドして行末に + を付ける必要があります。
\n は必要ありませんが、付けておけば出力後のソースが見やすく解りやすくなるでしょう。
また <img src="*.jpg" width="100" height="40"> の様にタグ内で " を使う際は "の前に \ を配置して \" とする必要があります。 Perl の Print 命令と同じ要領でお願いします。
 
┌(^o^)┐  この領域部分のみを書替えてください。  ┌(^o^)┐

 
JavaScript には Perl みたいにヒアドキュメント出力命令がないので、図のように authorize.html のソースが恐ろしくブザマな形になり果ててしまいました。
■ 再び注意 ■
デザインを変更する際、フォームのパーツタグ類は可能な限り触らずにその他の文字やイメージ表示タグだけを変更したほうが無難です。 authorize.html は絶対にオーサリング・ツール(フ○イ○ーワー○スとか×××ビルダーとか)で編集しないでください。 前記のもので編集・変更した場合、オリジナルのタグやスクリプトが破壊され動作しなくなる可能性が高くなります。 必ずエディタで直接タグを編集してください。
■ 著 作 ■
ご使用にあたっては、フリーウェアと認識していただいて結構です。
ただし制作したスクリプトの原型の著作権は当方に帰属するといたします。
ブラウザーに表示される <body></body> タグの間 のタグはカスタマイズ(デザインの変更等)して頂いて結構です。
■ 問題点?! ■
アクマでJavaScriptでバーチャ的にForm認証させているぽく見せかけてるだけなので、authorize.html 自体は、401のエラー情報を HTTPD に送らないし、オリジナルのエラーメッセージも出力しません。
一度認証に失敗した場合は、やっぱりいつものダイアログが表示されてしまいます。 (バグではありません)
そのような現象が起こった場合は素直にダイアログに情報を再入力してログインするしか他ありません。
■ サポート ■
現時点ではJavaScriptの仕様に限界があるため問題点の収束およびバージョンアップは考えていません。
くれぐれも authorize.html は入手した方の判断と責任で使用してください。
authorize.html を使用したために発生したとされる すべてのトラブルや、すべてのメンタル・ダメージに対して当方は一切責任を負いません。 その他のご意見・ご感想は こちら MKZ までメール願います。
『 Form認証っぽい JavaScript 』 Programing & HTML Produced by MKZ.
Copyright(C) 2003, MKZ. All rights reserved.