Laravel

Laravel 4 認証とメール送信のための設定について

Laravel 4 を学習するのにちょうど良いサンプルがあったので、ソースを追いながら設定やらフレームワークの機能などいろいろと突っ込んで調べてみました。もし同じように「チュートリアルになるサンプル」を探していたら一度ご覧下さい。

Laravel 4 Bootstrap :: L4 starter project with Twitter Bootstrap 2.2

このプログラムはフロントエンドからのユーザー登録とログイン認証、及びログイン後のユーザー情報の変更処理を扱ったプロジェクトで、フロントエンド表示に Twitter Bootstrap を利用しています。

Bootstrapは12カラムのグリッドシステムを採用したCSSフレームワークで、最近3.0へバージョンアップされ、機能も大変充実しています。Bootstrapの学習には百式管理人さんが制作された「Bootstrap 3.0入門」が秀逸です。

自分はアプリケーション開発でいつも管理画面に困っていましたが、CSSフレームワークがいくつも公開されており、それらを利用して開発することでますますスピードが早くなるように思います。

その他のフレームワークがブログ「Cats who Code」で紹介されています。

パスワードのリマインダー機能

Laravel 4 にはパスワードを忘れたユーザーがパスワードをリセットする際の「リマインダー機能」が組み込まれていることを知り、このチュートリアルで組み込んでみました。

その際、今後役に立ちそうな内容でしたので設定ファイルを備忘録として残しておくことにしました。

なお、リマインダー機能を利用するためartisanを使ってパスワードリマインダー用のトークンを保存するテーブルを定義しますが、GitHubからダウンロードしてComposerでインストールしたこのプロジェクトでは、「artisan auth:reminders」が利用できません。原因は、app/config/app.phpで指定されている「’providers’」に抜けがあるためで、Laravel 4 を普通にインストールした場合のものと比較すれば分かります。

リマインダーの設定(app/config/auth.php)

'reminder' => array(
    'email' => 'emails.auth.reminder',
    'table' => 'password_reminders',
    'expire' => 10,
),

「email」項目はパスワードをリセットする際の送信メールのテンプレートで、「app/views/emails/auth/reminder.blade.php」ファイルになる。メールはHTMLメールだが、プレーンテキストを利用したい場合、

    'email' => array('text' => 'emails.auth.reminder'),

とし、reminder.blade.php にHTMLタグを含めなければ良い。

「expire」項目は分単位で、パスワードリセットできるメール送信後からの有効期限を示す。デフォルトは60分らしい(未確認)。

メール送信の設定(app/config/mail.php)

Laravel 4 ではメール送信にSwift Mailerが利用されるとのことだが、Swift Mailerの詳細は調べていない。Coreserverを利用している自分は、SSLを利用したメール送信ができた。その設定は次の通り。

return array(
    'driver' => 'smtp',
    'host' => 'mxx-coreserver-jp.value-domain.com',
    'port' => 465,
    'from' => array(
        'address' => 'mt-systems@mt-systems.jp',
        'name' => '有限会社エムティシステム',
    ),
    'encryption' => 'ssl',
    'username' => 'username',
    'password' => 'password',
);

今後、セッションを利用したエラー表示についてもう少し知る必要がありそうだ。