2015年10月27日火曜日

CakePHP 3で、ユーザー認証(Authenticate)

CakePHP 3で、ユーザー認証(Authenticate)です。コンポーネント(AuthComponent)として提供されているので、それをコントローラーのbeforeFilter()か、initialize()メソッドにロードすると、簡単に認証システムを組み込める模様。

src/Controller/AppController.php
    $this->loadComponent('Auth', [
      'authenticate' => [
        'Form' => [
          'fields' => [
            'username' => 'email',
            'password' => 'password'
          ]
        ]
      ],
      'loginAction' => [
        'controller' => 'Users',
        'action' => 'login'
      ]
    ]);
src/Controller/UsersController.php
public function login()
{
  if ($this->request->is('post')) {
    // ユーザー判定
    $user = $this->Auth->identify();
    if ($user) {
      // ユーザー情報を保存
      $this->Auth->setUser($user);
      return $this->redirect($this->Auth->redirectUrl());
    }
    $this->Flash->error('ログインに失敗しました。');
  }
}

実際に設定してみたサイトがこちら

参考サイト
クイックスタートガイド(CakePHP Cookbook 3.x ドキュメント)

0 件のコメント:

コメントを投稿