CakePHPで、通常ユーザーの認証と、プレフィックスを付けるなどして管理画面を切り分けて、そちら側でも認証を設けた場合。

そのまま使っていたら、通常ユーザーで認証したあとに管理画面を見てみたら、『あれ?認証画面が出ない…』となって、よく見てみたら、通常ユーザーで管理画面の認証が通ってしまってた(゚д゚)
うっかりしていた(;´Д`)

はい。通常ユーザー認証と、管理者認証とで、異なるセッション名(sessionKey)を使いましょう。

具体的には、Authコンポーネントを読み込んだあと、例えば、
// 通常ユーザー認証の場合
$this->Auth->sessionKey = 'Auth.User';
// 管理者認証の場合
$this->Auth->sessionKey = 'Auth.Admin';

などとします。

ワタクシメの場合、AppControllerを継承したクラスを2つ用意して切り分けて使っていましたので、下記のようにしました。

class UserAppController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
//...
]);
$this->Auth->sessionKey = 'Auth.User';
}
//...
}


class AdminAppController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'authenticate' => [
'Form' => ['userModel' => 'Admins']],
//...
]);
$this->Auth->sessionKey = 'Auth.Admin';
}
//...
}