Written by Manabu Bannai

【CodeIgniter】サードパーティのライブラリ(ion_auth)をインストールする方法

CodeIgniter PROGRAMMING

CodeIgniterでサードパーティのライブラリをインストールする方法です。
備忘録的なまとめです。

Sparksをインストールする

DLページ:katzgrau/getsparks.org: getsparks.org – The CodeIgniter Package Managment Repository
CodeIgniterのアプリケーションフォルダで以下のコマンドを実行。

$ php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

するとtoolsというフォルダが生成されます。
では、認証システムの構築に便利な、ion authライブラリをインストールしてみましょう。
DLページ:CodeIgniter Sparks | ion_auth

$ php tools/spark install -v2.5.0 ion_auth

You are on fireと表示されれば成功です。
すると、sparksというフォルダが生成されます。
では、実際につかってみましょう。

ion authライブラリを利用する

ion authライブラリではセッション認証をつかいます。
そこで、CodeIgniterのマニュアルからセッションデータ利用に必要なDBサンプルデータをもってきます。
セッションクラス : CodeIgniter ユーザガイド 日本語版

上記ページから以下のコードをコピーします。

CREATE TABLE IF NOT EXISTS `ci_sessions` (
  session_id varchar(40) DEFAULT '0' NOT NULL,
  ip_address varchar(16) DEFAULT '0' NOT NULL,
  user_agent varchar(120) NOT NULL,
  last_activity int(10) unsigned DEFAULT 0 NOT NULL,
  user_data text NOT NULL,
  PRIMARY KEY (session_id),
  KEY `last_activity_idx` (`last_activity`)
);

つぎに以下のパスからSQL文をDLします。

/sparks/ion_auth/2.5.0/sql/ion_auth.sql
DROP TABLE IF EXISTS `groups`;
#
# Table structure for table 'groups'
#
// ......長いので省略します。

CodeIgniterのマニュアルからコピーしたSQL文とion_auth.sqlをDBに挿入します。
するとDB内にいつくかのテーブルが生成されます。
ユーザーテーブルをみるとAdminのアカウントが生成されていることがわかります。
ユーザー名:administrater
パスワード:password
Email:[email protected]

ion authライブラリのオートロード設定とテスト実行

つぎにion authライブラリをオートロードします。
編集ファイル:application/config/autoload.php

$autoload['sparks'] = array('ion_auth/2.5.0');

Welcomeコントローラーに以下を記述します。
ログインしていないユーザーをログインページにリダイレクトするスクリプトです。
編集ファイル:application/controller/welcome.php

ion_auth->login("[email protected]", 'password');
    if( $this->ion_auth->logged_in() == false ){
      redirect ('user/login');
    }
  }

  public function index()
  {
    $this->load->view('welcome_message');
}

さくっと、リダイレクト先のページも作成します。
新規作成ファイル:application/controller/user.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends CI_Controller {

  public function __construct(){
    parent::__construct();
  }

  public function login(){
    echo "Login form";
    var_dump($this->ion_auth->user()->row());
  }

}

以上で完了です。
トップページにアクセスすると、ログインページにリダイレクトされることがわかります。ion auth便利ですね!

photo credit: Gueоrgui via photopin cc