どうすれば自分のページにその機能をつけられるでしょうか?
ログインが必要なサービスを提供して、その際に自動ログインできるようにしたいです。
ほとんどの場合、Cookie を使う事になると思います。
使っているサイトの例
http://techon.nikkeibp.co.jp/guide/cookies.html
ただし、自動ログインは問題になる事もあるので、重要な部分(登録情報・パスワードの変更等)では、再度パスワードを確認するようにした方が良いです。
「はてな」でも質問時等ポイントにかかわるところでは毎回パスワードを要求されます。
これは違います。
何を使うかにもよりますが、こんな感じですね。
http://www.tohoho-web.com/wwwcook.htm
JAVAscriptを使うなら、このように書きます
http://www.tohoho-web.com/wwwcook3.htm
(これは訪問日時などを記録するものです)
まず、お持ちのページでサーバサイドスクリプト(PHP、JSP等)を使用できますでしょうか。でないと「ログインが必要なサービス」自体が提供できません。
可能であれば、以下のようにします。(説明の便宜上、遷移先はhtmlにしています) 説明用なのでかなり粗いですが・・・。
[login.htm] <html> <head> <title>ログイン</title> <script> <!-- document.cookie.match(/id=([^;]+)/); var id = RegExp.$1; if(id){ alert("cookieからID:" + id + "を取得しました"); location.href("menu.htm?id=" + id); } function login(fm){ if(fm.id.value == ""){ alert("IDを入力してください"); return false; } if(fm.isMemory.checked){ document.cookie = "id=" + fm.id.value + ";expires=Thu, 1-Jan-2030 00:00:00"; } return true; } //--> </script> </head> <body> <form action="menu.htm" method="post" onsubmit="return login(this);"> <input type="text" name="id"/> <input type="checkbox" name="isMemory"> <input type="submit"/> </body> </html> ----------------------------------------------- [menu.htm] <html> <head> <title>メニュー</title> </head> <body> <input type="button" value="CLEAR" onclick="document.cookie = 'id=;'"/> </html>
test.htmでテキストボックスにIDを入れ、チェックボックスにチェックを入れてからボタンを押すと、クッキーにIDが保存されます。ここでブラウザの戻るボタンを押すと、「cookieからID:" + id + "を取得しました」というalert(説明用なので実際は不要)を出して再度menu.htmを表示します。このとき、クエリ文字列(アドレスの「?」以降)に入力したIDが確認できます。cookieをクリアしたい場合はmenu.htmのCLEARボタンを押してください。その後戻るボタンを押すとlogin.htmを表示できます。
実際には、セキュリティ上の問題があるので、更に工夫する必要があります(IDをそのままクエリパラメータで送っている等)。更に、「ログインが必要なサービス」のためには、対象の全ページで正規ユーザのアクセスかをチェックする必要があります(ここはサーバサイドで実装する必要があります)。
参考になれば幸いです。
セキュリティ上の問題のために更なる工夫をするにはどうしたらよいでしょうか?
また、これってよく分からないのですが、Javascriptではないですよね?
Perlが動けばこれは動くのでしょうか?
もしPHPで開発しているのであれば、ライブラリのPEARのAuthを使えばできます。
http://pear.php.net/package/Auth
http://www.bnote.net/php/pear_idx.shtml
http://dozo.matrix.jp/pear/index.php/PEAR/Auth.html
参考になれば幸いです。
ありがとうございます。
だんだんどれをやればいのかが分からなくなってきました。
もう少し具体的なコードなどが欲しいです。