【FuelPHPの使い方】ログイン・ログアウト機能の実装方法

始めに

このページは、PHPのフレームワーク「FuelPHP」の学習中の僕がメモとして残しているものです。内容に間違いがあればご連絡いただけると幸いです。

FuelPHPでログイン・ログイン機能を実装するには標準で同梱されている「Authパッケージ」を使うと、簡単に作れます。

この記事では、Authパッケージを使うために必要な設定や使い方を解説しています。

Authパッケージを使うための準備

Authパッケージを使うには、「fuel/app/config」の中にある「config.php」に以下のように修正します。

'packages' => array(
'orm',
'auth', //追加
'email',
),

ログイン処理の書き方

FuelPHPのAuthパッケージを使って、ログイン機能を実装するには、次のように書きます。

$auth = Auth::instance();
if($auth->login(' $_POST['username']', $_POST['password'])){
  //成功時の処理
}else{
  //失敗時の処理
}

上記の場合、「ユーザー名」と「パスワード」で認証をかけてログインしますが、「ユーザー名」を「メールアドレス」に変更することもできます。

尚、ログインに成功すると、ユーザ名とログインハッシュがセッションに保存されます。

ログイン処理のコードサンプル

コントローラー側の処理を一部抜粋しました。

if(Input::method() == 'POST') {

 $val = Validation::forge();
 $val->add('email', 'メールアドレス')
      ->add_rule('required')
   ->add_rule('valid_email');

 $val->add('password', 'パスワード')
    ->add_rule('required');

 if($val->run()){
  $data = $val->validated();

  $auth = Auth::instance();
  if($auth->login($data['email'], $data['password'])){
   //ログイン成功時の処理
   Response::redirect('mypage/index');
  }else{
   //ログイン失敗時の処理
  }
 }else{
   // バリデーションチェックエラー
  }
}

全体の流れとしては、

  1. ViewからPOST送信されているかチェック
  2. バリデーションチェック
  3. ログイン処理

となっています。

フレームワークを使わずにスクラッチで書く場合は、データベースにユーザー名、パスワードの登録があるかチェックしあればログインするといったような処理を書かなければいけませんが、FuelPHPの場合はそれらを自動でやってくれるので、手間が省けます。

ログアウト処理の書き方

続いてAuthパッケージを使って、ログアウト機能を実装するには、次のように書きます。

$auth = Auth::instance();
$auth = logout();

View側のログイン・ログアウトボタン(Form)の作り方は以下の記事を参考にしてください。

【FuelPHPの使い方】ViewでFormタグを生成する方法

FuelPHPのオススメ書籍

created by Rinker
¥4,750 (2022/12/06 06:33:35時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA