[WordPress] session_start();でCookie セッションIDを発行する

WordPressCookie,WordPress,セッションID

はじめに

前回のPoundの記事でリバースプロキシについて説明しました。今後、Poundを使ったCookieベースのセッション維持(パーシステンス)の機能を検証したいため、バックエンドサーバとなるWordPressサーバでCookie セッションIDを発行する設定をします
CookieセッションIDを発行することでクライアントのブラウザにCookieが記憶され、次回のリクエストもそのCookieを付与してアクセスします。

PoundのCookieベースのセッション維持(パーシステンス)については次回説明しますが、CookieとセッションIDはステートレス(状態を記憶しない)なHTTPにサーバのアプリ上で状態を把握する為の仕組みです。
例えば会員制のECサイト等では、ユーザの状態(ログイン状態や買い物かごの状態等)を常に管理する必要があります。そこでユーザがログインした際にサーバはユニークなCookieを発行し、サーバはユーザとセッションIDを紐づけし状態管理を開始します。ログイン後のリクエストはそのCookieが付与されてくるのでサーバはセッションIDをもとにユーザのログイン状態や買い物かごに何が入っているのか、等の状態を管理することができるようになります

 今回、PHPの「session_start();」関数を使います。「session_start();」を使うとサーバ側で「PHPSESSID」というデフォルトで値が一意なCookieを発行します。

設定内容

 当方のWordPress環境でCookieによるセッションIDの設定をします。テーマのfunctions.phpの下部に以下の設定をします。

function init_session_start(){
        session_start();
}
add_action('template_redirect', 'init_session_start');

 ファンクションフックの「template_redirect」はページを開いた最初のタイミングを指定することができます。つまり当方のブログを開いた際に「PHPSESSID」というCookieを発行します。

確認

 ブログサーバにアクセスし、Chromeの開発モードからデベロッパーツール(Windowsの場合F12キー)からCookie情報を確認します。すると『PHPSESSID』が付与されていることがわかります。これでセッションIDの発行ができていることが確認できました。

 以上、セッションIDの発行方法でした。