読者です 読者をやめる 読者になる 読者になる

やったこと

webサービスを作るときに考えたことを垂れ流します

【CakePHP3】Authコンポーネントを使うと勝手にログインページに遷移してしまう!

CakePHP3でAuthコンポーネントを使う際に困ってしまいました。

トップページでユーザーがログインしているかどうか確認する処理を書いていたのですが、なぜかトップページへアクセスするとログインページに自動的に遷移してしまうのです・・。

原因は「$this->Auth->allow['xxxx']」でトップページを許可していなかったことでした。

allowを指定すると'xxxx'に記述したメソッドが認証画面に飛ばずに使用できるようになるんですね。

トップページのコントローラーに以下のように「allow」の記述を追加したら、ちゃんとトップページにアクセス可能になりました。

class TopController extends AppController
{
    public function beforeFilter(\Cake\Event\Event $event)
    {
      //トップページを許可
      $this->Auth->allow(['display']);
    }

    public function display()
    {
      //トップページ表示処理

      if ($this->Auth->user()) {
        //ログインしている
        ・・・
      } else {
        //ログインしていない
        ・・・
      }
    }
}

以上