質問: 現在CakePHPでusersテーブル・UsersController.phpを用いてAuth認証の実装をしています。 usersディレクトリではログイン状態が続くのですが、 他のディレクトリに飛ぶと、勝手にログアウトのような状態になってしまいます。 このようなことが起こる場合は、何が考えられるでしょうか。 何かお分かりの方は、是非ご教授の程よろしくお願いします。 ちなみにFacebook認証との連携のため、Form認証のようなデフォルト的認証はしておりません。 また、こちらのコードを参考にしています。
回答: のコードそのままということならログイン処理が正しくないので動きません。 ``` $user = $this->User->find('first', ['conditions' => ['User.id' => $facebookId]]); if (!empty($user['User'])) { if ($this->Auth->login($user['User'])) { $this->redirect(['action' => 'index']); } } else { $this->_add(); } ``` で、ユーザーが見つからないときに`_add`メソッドを呼び出すようですが、その中でログインセッションにユーザーをセットしていないので、ログインしたことになっていません。 Facebook認証を行いたいなら や などを利用した方がよいと思います。 また、勉強目的ならドキュメントを参考にして独自にAuthenticateクラスを作成してもいいかもしれません。 カスタム認証オブジェクトの作成