1. TOPTOP
  2. Webサービス
  3. FuelPHP

FuelPHPのCryptクラスを使ってログイン後のセッション管理を行う

web_dev

WinRoad徒然草のFuelPHPで簡単認証システム(新しいタブで開く)のところで、気づいたことをひとつ。実は記事の通りに認証システムを写経しましたが、上手くログインできませんでした。

ログインできることはできるのですが、あらかじめデーターベースに登録した、ユーザー名とパスワード名を使っても、23)のようにログインユーザー名が表示されません。

ログインユーザー名を表示させるための作業

FuelPHPに詳しい方から聞いたところ、WinRoad徒然草の記述に加えて次の作業が必要でした。もちろん自分の開発環境なので、人によっては作業不要な方もいらっしゃると思います。そういう方は参考程度にどうぞ。

1.PHP拡張機能の準備

FuelPHP1.7の要件(新しいタブで開く)を見ていると、いくつかのPHP拡張機能が必須になっています。このうち自分の場合、mbstringmcryptの拡張機能がサーバーに入っていませんでした。それぞれインストールしておきます。

yum install php-mbstring php-mcrypt

2.Cryptクラスの準備

具体的にはcrypt.phpファイルを以下のとおりに配置します。

/var/www/html/プロジェクト名/fuel/app/config/crypt.php

3.crypt.phpファイルの編集

キーの部分はbase64エンコード(新しいタブで開く)した文字列で、デコードするために長さは、4の倍数になるようにします。

<?php
return array(
  'crypto_key' => 'UjnRmQrKbQUi8UZV8STg42Bb',
  'crypto_iv' => 'r4zgj0b7pOLMMwV0e5JL08SI',
  'crypto_hmac' => 'GjgFYNwL8CqlH1jgrFoLtpcJ',
);

4.書き込み権限の確認

ドキュメントによると、crypt.phpに対して書き込み権限が必要です。自分の場合、”664″にしています。

-rw-rw-r--  1 username username  692  9月 28 18:57 crypt.php

反省点

今回の作業は、詳しい方に「お任せ」でやってもらいました。「なぜCrypt クラスが必要なのか」とか、「Sessionとどう関わってくるのか」とか、理由の部分をあまり考えていません。

おそらく、Cryptクラスがないと、ログイン後のセッション管理ができないのではないかと、ざっくりと思ったりしています。

〔参考サイト〕