質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

1回答

3687閲覧

cakePHP3でセッションが切れてもloginページにリダイレクトされない。

yajin

総合スコア75

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/04/11 06:32

ログインページを実装しているのですが、セッションが切れてもログインページにリダイレクトされません。
$this->request->settion()->read('Auth.Users.name');
と記述し、確認するも、セッションが切れた場合、名前は空になり、homeに残ったままです。

何が原因なのでしょうか。

コード

PHP

1//UsersController.php 2 3 public function login(){ 4 $this->ViewBuilder()->layout('notauthtop'); 5 if($this->request->is('post')){ 6 $user = $this->Auth->identify(); 7 if($user){ 8 $this->Auth->setUser($user); 9 return $this->redirect('/home'); 10 } 11 $this->Flash->error('ユーザー名かパスワードが間違います'); 12 } 13 } 14 15 public function logout() 16 { 17 $this->request->session()->destroy(); 18 return $this->redirect($this->Auth->logout()); 19 } 20//Routes.php 21 //$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); 22 $routes->connect('/', ['controller' => 'Pages', 'action' => 'home']); 23 $routes->connect('/login', ['controller' => 'Users', 'action' => 'login']); 24 $routes->connect('/home', ['controller' => 'Pages', 'action' => 'home', 'home']); 25 26 /** 27 * ...and connect the rest of 'Pages' controller's URLs. 28 */ 29 //$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); 30//AppController.php 31 $this->loadComponent('Auth',[ 32 'authenticate' => [ 33 'Form' => [ 34 'scope' => ['status' => '2'], 35 'fields' => [ 36 'username' => 'loginid', 37 'password' => 'password' 38 ] 39 ] 40 ], 41 'loginAction' => [ 42 'controller' => 'Users', 43 'action' => 'login' 44 ], 45 'logoutRedirect' => [ // ログアウト後に遷移するアクションを指定 46 'controller' => 'Users', 47 'action' => 'login', 48 ], 49 'authError' => '再度ログインしてください。', 50 'storage' => 'Session' 51 ]); 52 53//app.php 54 'Session' => [ 55 'defaults' => 'php', 56 'timeout' => 2,//単位は分 57 ], 58]; 59 60

他に何かするべきことってありましたでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/04/11 06:40 編集

「セッションが切れていたらログインページにリダイレクト」という記述はどこに書いていますでしょうか?
yajin

2018/04/11 12:08

ご指摘ありがとうございます。authコンポーネントを使っていれば、書かなくても済むはずじゃなかったでしょうか。
guest

回答1

0

10中8,9 UsersController では loadComponent("Auth") が有効になってないんでしょうね

※ オーバーライドしたあとに親のメソッドを読んでいない等

投稿2018/04/11 08:50

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yajin

2018/04/11 12:10 編集

ご回答ありがとうございます。 それであれば、ログインもできないはずではないでしょうか。 ログインはできます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問