a-blog cms PHP API Reference

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

Methods

authenticate()

public authenticate(int $userId) : void
Parameters
$userId : int

destroy()

ログアウト。セッションを破棄し Cookie を失効させる。

public destroy() : void

ensureFormToken()

CSRF トークンを確保して返す(未発行なら発行)。

public ensureFormToken() : string
Return values
string

formToken()

保持中の CSRF トークン(未発行なら null)。

public formToken() : string|null
Return values
string|null

get()

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
bool

isAuthenticated()

管理者としてログイン済みか。

public isAuthenticated() : bool
Return values
bool

remove()

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
Return values
int|null

        
On this page

Search results