• ベストアンサー

Cookieを利用したユーザ管理

perl(CGI::Session)を利用したセッション管理について教えてください。 【実現したい機能】 会員DB(IDやパスワードを保持)を使用し、認証を行い、 認証成功したらCookieを発行し、会員別のページを表示する。 会員DBのIDとCookieを紐づける機能は、CGI::Sessionにあるのでしょうか。 CGI側でCookieから会員DBのIDを結びつけるためには新たにファイルなどを作成する必要があるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

CGI::Sessionは元々Cookieを使用することを想定しています。 一般的なシナリオは以下のとおりです。 1) パスワードなどで認証したあと、CGI::SessionでセッションIDを作る 2) 1) のセッションIDをファイルやDBに保存する 3) 認証後の初めの画面でセッションIDをCookieでユーザのブラウザにセットする 1)と2)はCGI:Sessionのnewメソッドで一度にまとめることができます。 3) の方法はCGI::Sessionのheaderメソッドを参照して下さい。

okwave40
質問者

お礼

ご回答ありがとうございました!

その他の回答 (1)

回答No.1

Basic認証したユーザIDを取得する目的であれば、環境変数 REMOTE_USER を使用しては如何でしょうか。 私は、.htaccess を通過した後のindex.cgi で認証したIDを保持し、各CGI持ち回りでユーザ毎の処理を行っています。 -------------------- #!/usr/bin/perl # ..... # Basic認証したユーザデータを取得 my $username = $ENV{'REMOTE_USER'}; --------------------- 「Cookieと絡めたい」とか、「CGI:Session をどうしても使用したい」のであれば、話は別ですが・・

okwave40
質問者

お礼

ご回答ありがとうございます。 Basic認証ですとシンプルに実装できるのですね。 Basic認証はセキュリティ的に・・・と書こうとしたのですが、何がセキュリティ的に問題なのかわからなくなってしまったので、別件で質問したいと思います。

okwave40
質問者

補足

PCと携帯サイトを視野に入れているため、Basic認証はできるだけ使いたくありません。 hiddenパラメータによるセッションID方式を考えています。

関連するQ&A