dポイントプレゼントキャンペーン実施中!

perl(CGI::Session)を利用したセッション管理について教えてください。

【実現したい機能】
会員DB(IDやパスワードを保持)を使用し、認証を行い、
認証成功したらCookieを発行し、会員別のページを表示する。

会員DBのIDとCookieを紐づける機能は、CGI::Sessionにあるのでしょうか。
CGI側でCookieから会員DBのIDを結びつけるためには新たにファイルなどを作成する必要があるのでしょうか。

A 回答 (2件)

CGI::Sessionは元々Cookieを使用することを想定しています。


一般的なシナリオは以下のとおりです。
1) パスワードなどで認証したあと、CGI::SessionでセッションIDを作る
2) 1) のセッションIDをファイルやDBに保存する
3) 認証後の初めの画面でセッションIDをCookieでユーザのブラウザにセットする

1)と2)はCGI:Sessionのnewメソッドで一度にまとめることができます。
3) の方法はCGI::Sessionのheaderメソッドを参照して下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/01/27 19:19

Basic認証したユーザIDを取得する目的であれば、環境変数 REMOTE_USER を使用しては如何でしょうか。


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

この回答への補足

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

補足日時:2011/01/21 16:21
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Basic認証ですとシンプルに実装できるのですね。

Basic認証はセキュリティ的に・・・と書こうとしたのですが、何がセキュリティ的に問題なのかわからなくなってしまったので、別件で質問したいと思います。

お礼日時:2011/01/21 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!