Cakephp3のAuthでUsers以外のテーブルを指定する

CakePHP3

Users以外のテーブルを指定する方法です。たまに管理画面が別れていたりする場合などに利用します。AppControllerなどのBeforeFilter辺りに記述してください。

userModelというのを指定すると、ログイン時に参照するデータベースのモデルが変更されます。

ログインのアクションや、ログイン後に遷移する設定、エラー文字列は適宜変更してください。

// auth設定
$this->loadComponent('Auth',
	['authenticate' => [
		'Form' => [
			'fields' => [
				'username' => 'mail_address',
				'password' => 'password',
			],
			'userModel' => 'AdminUsers',
			'scope' => ['status' => MST_ON],
		],
	],
	'loginAction' => [ // ログイン時のアクション
		'controller' => 'UserLogin',
		'action' => 'index',
	],
	'loginRedirect' => [ // ログイン後にリダイレクトするときのURL
		'controller' => 'Top',
		'action' => 'index'
	],
	'authError' => 'ログインできませんでした。ログインしてください。', // エラー表示
]);