私はCakePHPバージョン3.2.10に基づいてアプリケーションを持っています。私はCakePHPでまったく新しくなっています。今CakePHPはサーバを変更した後にクッキーとセッションを設定しません。
public function login()
{
$this->set('title', 'Logowanie');
$this->set('bodyclass', 'main-page');
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
if($user['blocked'] == 0) {
$this->Auth->setUser($user);
if ($this->Auth->user('role') == 'admin')
return $this->redirect(['controller' => 'Admin', 'action' => 'index']);
return $this->redirect($this->Auth->redirectUrl());
}
else{
$this->Flash->error('Konto zostało zablokowane przez administratora serwisu. Skontaktuj się z Biurem Obsługi.');
}
} else $this->Flash->error('Błędne dane logowania. Spróbuj ponownie.');
}
}
のような問題
$this->loadComponent('Auth', [
'authorize'=> 'Controller',
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
],
'scope' => [
'Users.active' => 1,
]
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'logoutAction' => [
'controller' => 'Users',
'action' => 'logout'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'index'
],
'unauthorizedRedirect' => '/', // $this->referer()
]);
と、ログインアクション:私のアプリケーションでは、私は、このように構成されたCSRFコンポーネントとAuthコンポーネントを使用するアプリケーションがどこにあるか
数日前、私は、サーバーを変更しました実行後、変更後にログインが停止しました。ログインをクリックすると、CSRFトークンCookieが見つからないというメッセージが表示されます。コンポーネントが問題であるかどうかテストするためにcsrfを無効にしてからもう一度試してみると白い画面が表示され、ページが更新されないと何も起こりません。新しいサーバー、古いものはすべてOK、クッキーは設定されています。
私は、クッキーだけでなく、すべてのセッションがうまくいかないことを知りました。私は$ _SEESIONをダンプしようとしますが、$ this-> Auth-> setUser($ user)を呼び出した直後に何かが表示されます。だから私はいくつかのソリューションに目を通すと、セッションをセットアップするためのconfig/app.phpの設定があることを見つける:
'Session' => [
'defaults' => 'php',
],
そして、そのように設定すると、セッションがデフォルトのPHPのディレクトリに格納されていることを読みました。だから私はそれをケーキに変えました(tmpフォルダにdirセッションを作成して777の権限を追加しても)。しかし問題は解決されませんでした。なぜそれがうまくいかないのか分かりません。私はcookiePathと他の設定私はセッションの設定を設定しようとしましたが、それでも動作しません。
これはサーバーの問題(アクセス許可)である可能性があります。サーバーについての言葉はほとんどありません:すべてが動作していた古いサーバーは私のプライベートサーバー(フルアクセス権を持っています)、新しいサーバー(または仮想サーバー/ホスト)はほとんどホスティング会社(home.pl)にあります。設定する。
私は自分ですべてのクッキーを保存しない参照してくださいクッキーの詳細についてはtmpフォルダ
からモデルと持続性のためのキャッシュフォルダを削除するので、これらのステップは必要ありません。ログインするには、デフォルトのcakephp認証システムを使用します。 cakePHPではクッキーは設定されていません。 – Manveru
だから、私たちがあなたの発行したものを解決できるように私たちにいくつかのコードを示す方が良いです。 – Noman
私は自分の問題がどこにあるのか、どんなコードを置くべきかを知りません。しかし、大丈夫。問題が発生しているようだと思われるログインアクションコードを追加しました。 – Manveru