SetupSession
in package
FinalYes
セットアップ(install / メンテナンス)専用のセッションラッパー。
本体 Engine はストレージが acmsSerialize(DB 由来 salt 依存)で、 fresh install の DB 未接続段階では salt がランダム化して保持できないため流用できない。そこで setup は 素の $_SESSION を使うが、これまで setup.php / install.php / import.php に散らばっていた session 名・ Cookie 属性・毎リクエスト再生成・auth / CSRF トークンの読み書きを本クラスへ集約する。
- 値の格納は acmsSerialize を通さない素の $_SESSION なので pre-DB でも安全。
- Cookie 属性を安全側(httponly / samesite=Lax / SSL 時 secure)に倒す(旧 initSession は未設定だった)。
- session_start 等の I/O は start()/destroy() に閉じ、get/set 等の値操作は $_SESSION への薄い委譲とする。
Table of Contents
Constants
- SESSION_NAME = 'acmsSetup'
- AUTH_KEY = 'auth'
- TOKEN_KEY = 'setupFormToken'
Methods
- authenticate() : void
- destroy() : void
- ログアウト。セッションを破棄し Cookie を失効させる。
- ensureFormToken() : string
- CSRF トークンを確保して返す(未発行なら発行)。
- formToken() : string|null
- 保持中の CSRF トークン(未発行なら null)。
- get() : mixed
- has() : bool
- isAuthenticated() : bool
- 管理者としてログイン済みか。
- remove() : void
- resetKeepingToken() : void
- install はステップ状態を持たない設計のためセッションを全消去するが、CSRF トークンだけは フロー継続のため保持する(退避 → 全消去 → 書き戻し)。
- set() : void
- start() : void
- セッションを開始する。session 名と安全な Cookie 属性を設定し、毎リクエスト ID を再生成する。 既に開始済みなら何もしない(多重 start 防止)。
- userId() : int|null
- ログイン中のユーザー ID(未ログインなら null)。
Constants
SESSION_NAME
public
mixed
SESSION_NAME
= 'acmsSetup'
AUTH_KEY
private
mixed
AUTH_KEY
= 'auth'
TOKEN_KEY
private
mixed
TOKEN_KEY
= 'setupFormToken'
Methods
authenticate()
public
authenticate(int $userId) : void
Parameters
- $userId : int
destroy()
ログアウト。セッションを破棄し Cookie を失効させる。
public
destroy() : void
ensureFormToken()
CSRF トークンを確保して返す(未発行なら発行)。
public
ensureFormToken() : string
Return values
stringformToken()
保持中の CSRF トークン(未発行なら null)。
public
formToken() : string|null
Return values
string|nullget()
public
get(string $key[, mixed $default = null ]) : mixed
Parameters
- $key : string
- $default : mixed = null
has()
public
has(string $key) : bool
Parameters
- $key : string
Return values
boolisAuthenticated()
管理者としてログイン済みか。
public
isAuthenticated() : bool
Return values
boolremove()
public
remove(string $key) : void
Parameters
- $key : string
resetKeepingToken()
install はステップ状態を持たない設計のためセッションを全消去するが、CSRF トークンだけは フロー継続のため保持する(退避 → 全消去 → 書き戻し)。
public
resetKeepingToken() : void
set()
public
set(string $key, mixed $value) : void
Parameters
- $key : string
- $value : mixed
start()
セッションを開始する。session 名と安全な Cookie 属性を設定し、毎リクエスト ID を再生成する。 既に開始済みなら何もしない(多重 start 防止)。
public
start() : void
userId()
ログイン中のユーザー ID(未ログインなら null)。
public
userId() : int|null