0

これを作成するための優れたライブラリまたはロジックはありますか: ユーザー識別のための長期 (数年) セッション。Gmail や Facebook のようなセッション管理はおまけになります。

4

3 に答える 3

7

Cookie とセッションの組み合わせをセットアップする必要があります。セッションは、ブラウザが閉じられるまで、または最悪の場合、2 つのリクエスト間の時間がサーバーによって課された時間制限を超えるまで続くことに注意してください。

まず、これらすべてを可能にするために、Cookie を使用する必要があります。このため、ユーザーがブラウザーを変更したり、Cookie をフラッシュしたりすると、永続的なセッションが機能しなくなることに注意してください。

2 つ目は、そのユーザーがこの場所からのみ使用できるハッシュを Cookie に作成することです。例: REMOTE_ADDRのハッシュとデータベースのユーザー ID を使用します。したがって、あまり機能しないハッシュを除いて、Cookie から推定できる情報がないため、セキュリティ上の脅威にはなりません... 今のところ.

3 番目に、ユーザーがリクエストを送信するときに、その Cookie が存在するかどうかを確認し、ハッシュを使用してデータベース内の同じハッシュと比較します。(このハッシュをユーザーのテーブルに入れることはできますが、別のテーブルを作成して、ユーザーが複数の場所から普遍的にログオンできるようにすることをお勧めします) データベース内のこのハッシュは、ログインするアカウントを取得するための鍵になります。

第 4 に、ログインするアカウントが見つかったら、Cookie のハッシュを更新することを忘れないでください。この時点で、php 内のSESSIONシステムを使用して、アプリの作業を通常どおり続行します。

この方法は、多くの「 Remember me 」ベースのサイトで成功していることが証明されています...

于 2011-10-22T17:13:03.743 に答える
1

セッションと Cookie を混同しています。セッションは、定義上終了するものです。
クッキーは永遠に続くかもしれませんが。

したがって、ID を受信した場合は、Cookie を設定して別のセッションを開始します。

于 2011-10-22T13:26:32.570 に答える
0

ユーザーのログイン中に、セッション Cookie の有効期限を +10 年または任意の値に設定します。

于 2011-10-22T13:06:27.353 に答える