2021年10月29日
「サインイン情報を記憶する」チェックボックス
PowerCMS では、管理画面および会員サイトにサインインする際に「サインイン情報を記憶する」というチェックボックスがあります(会員サイトの場合はサインインフォームをテンプレートで編集できるので、このチェックボックスを非表示にしているケースもあるかもしれません)。この機能は、例えばブラウザや、パスワード管理ソフトなどがフォームへの入力内容を記憶する機能と混同されやすく、またそのラベリングから、誤解を受けやすい機能のひとつで、しばしばお問い合わせをいただくことがあります。
この記事では、PowerCMS のセッションについて触れながら、「サインイン情報を記憶する」の効果について解説してみます。
PowerCMS でのセッション
ユーザによるサインインが行われると、データベースにセッション情報が作成され、ブラウザはそのセッション情報の ID を受け取り、Cookie に保存します。サインイン状態が判定される場面では、ブラウザの Cookie に保存されているセッション情報の ID を PowerCMS に送り、データベース上のセッション情報を照合することでアクティブなセッションであるかどうか判定しています。
このようにして、データベースとブラウザを紐づけてサインイン状態を維持しています。
サインアウト状態になるとき
サインアウト状態になるのは、データベースとブラウザを紐づけることができなくなった場合と、セッションの有効期限が切れた場合です。これには、例えば次のようなケースがあります。
- ブラウザの Cookie の有効期限が切れたとき
- ブラウザの Cookie が削除されたとき
- セッション情報の有効期限を超過したとき
- セッション情報がクリアされたとき
例えば、サインアウト操作を行うと、「2」と「4」が同時に行われます。
PowerCMS が発行する Cookie
サインイン時に PowerCMS が発行する Cookie は、セッション Cookie と呼ばれ、有効期限がありません。この Cookie はブラウザを閉じると削除されるため、前項の「2」の状態となり、サインアウト状態となります。「サインイン情報を記憶する」は、これを防ぐ機能になります。
「サインイン情報を記憶する」とは
「サインイン情報を記憶する」にチェックを入れてサインインすると、Cookie に有効期限が設けられ、ブラウザを閉じても Cookie が維持されるようになります。このとき、Cookie の有効期限は 10 年に設定されますが、これは 10 年間セッションが維持されるという意味ではありません。Cookie の有効期限はあくまでも Cookie が生存する期間の情報です。
セッションの有効期限
セッションの有効期限は、環境変数 UserSessionTimeout で定義された期間となります。
なお、UserSessionTimeout で定義される有効期限は、最終操作からの時間ではなく、サインインからの時間である、ということに注意してください。
サインアウト時の動作
PowerCMS では、ひとつのアカウントが複数のブラウザで多重にログインすることを排除していません。ただし、ひとつのブラウザでサインアウトすると、そのアカウントに紐づくデータベース上のセッション情報がすべてクリアされますので、すべてのブラウザがサインアウト状態となります。これはセキュリティ上の理由によるものです。
- カテゴリー
- PowerCMS 5
- その他
コメントを投稿する