【FuelPHP】FuelPHPでちょっと素敵な認証パッケージ「Sentry」を使う その1【Sentry】

2013.07.31

今回はFuelPHPや様々なフレームワークで利用できる認証パッケージ「Sentry」のインストールまでやってみました。

sentry

なにができるの?

以下の機能が提供されています。
詳しくは、ページ下部の参考リンクをご覧ください。

  • ログインIDとするカラム名を自由に設定できる
  • アクティベーション(使わないで登録することも可能)
  • グループ+権限によるアクセス制御
  • 一定期間ログインIDとパスワードを保存するあれ
  • ログイン制限(サスペンド、BAN、連続ログイン回数チェック)

なかなか充実していて良さそうな感じです。
SentryはOAuth認証などには対応していないようなので、自分で組み込むか別のパッケージを用意する必要があります。
個人的なオススメは、少し古いですが「andreoav/fuel-opauth」です。

実行環境

  • Git 1.8.1
  • PHP 5.3.3+
  • FuelPHP 1.7/develop
  • Sentry 2.0.*

なお、ApacheやMySQLなどいわゆるAMP環境はすでに用意ができているものとします。

FuelPHPのインストール

すでにインストールが終わっている方や慣れている方は、読み飛ばして先へ進んでください。
もっと簡単なのがいいかなって方は、FuelPHP界隈では有名な@kenji_sさんがver 1.6のAll-in-oneなzipファイルを作成してくれていますのでそちらを解凍して使ってください。

ではgitコマンドを使ってインストールします。
まず適切なディレクトリにcloneし、不要なファイルを消したうえで初期化します。

git clone git://github.com/fuel/fuel.git <src_dir>

cd <src_dir>
rm -rf .git .gitmodules *.md docs fuel/core fuel/packages

git init

つづいてサブモジュールを追加します。
実際は必要に応じて追加しますが、今回は練習も兼ねてひと通り追加していきます。
環境によっては少し時間がかかるかもしれません。

git submodule add git://github.com/fuel/core.git fuel/core
git submodule add git://github.com/fuel/oil.git fuel/packages/oil
git submodule add git://github.com/fuel/auth.git fuel/packages/auth
git submodule add git://github.com/fuel/parser.git fuel/packages/parser
git submodule add git://github.com/fuel/orm.git fuel/packages/orm
git submodule add git://github.com/fuel/email.git fuel/packages/email
git submodule add git://github.com/fuel/docs.git docs

composerのアップデートを行います。

php composer.phar update

インストール用のoilコマンドを実行します。

php oil refine install

Apacheの設定を済ませてある場合は、この時点でブラウザでの動作確認が可能になります。
作業の区切りとしてここまでを一度コミットしておきます。

git add . && git commit -m 'init'

Sentryのインストール

つづいてSentryのインストールです。公式にも記載されていますが、FuelPHPで利用する場合はcomposerを使います。
以下のコマンドでcomposerの最新版をダウンロードしてきます。

cd fuel/app/
curl -s http://getcomposer.org/installer | php

composer.pharファイルがあることを確認します。
次に同一ディレクトリに、composer.jsonという名前のファイルを作成し、以下の内容で保存します。

composer.json

{
    "require": {
        "cartalyst/sentry": "2.0.*",
        "illuminate/database": "4.0.*",
        "ircmaxell/password-compat": "1.0.*"
    },
    "minimum-stability": "dev"
}

これでインストールの準備ができました。あとは以下のコマンドでインストールします。
このとき特にインストール先を指定しない場合は、vendorディレクトリ以下に自動的に配置されます。
こちらも環境によっては少し時間がかかるかもしれません。

php composer.phar update

無事に完了すると以下のような配置になります。

fuel/app/vendor/
├── autoload.php
├── cartalyst
│   └── sentry
├── composer
│   ├── ClassLoader.php
│   ├── autoload_classmap.php
│   ├── autoload_namespaces.php
│   ├── autoload_real.php
│   └── installed.json
├── illuminate
│   ├── container
│   ├── database
│   ├── events
│   └── support
├── ircmaxell
│   └── password-compat
└── nesbot
    └── carbon

これで準備はオッケーな感じです。
ここまでをコミットして次回に続きます。

git add . && git commit -m '認証パッケージの追加'

参考リンクとおすすめ書籍

こめんと

すどーは風呂上がりによく首にタオルを巻きつけてるんですが、マフラーは嫌いです。なぜなんでしょうか。
今期のアニメも豊作でうれしいです。"Rage on"を熱唱しながらプールに飛び込みたいです。江がカワイイので見続けます。