質問: $this->response ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN") ->withCookie('auth', [ 'value' => "hoge", 'path' => '/', 'domain' => 'localhost:4200', 'secure' => false, 'httpOnly' => true, 'expire' => strtotime('+1 month'), ]) ->withLocation('http://localhost:4200'); ``` 「ちなみにdomainの設定をするとcookie自体生成されなくなります」 この文とコードを忘れておりました。 ちなみにdomain部分は '/' こうしてもcookie自体生成されません。 追記2 --- 参考URLを元にconfig/app.phpに追記 →しかし挙動に変化なし ``` 'Session' => [ 'defaults' => 'php', //以下ini部分を追記 'ini' => [ 'session.cookie_path' => '/', 'session.cookie_domain' => '.localhost:4200' ] ], ``` 追記3 --- **本番環境について(上記はlocalhostを使用するぐらいなので、開発環境です)** ・LoginページのみcakePHPのviewを使用する(securityを考慮し、cakePHPのformを使用するため) ・login以外のページはangularを使用し同じサーバ内に設置、cakePHPをjsonデータを返すAPIとしか使用していない となるとポート番号が違うだけなので、path => '/' と設置すれば良いだけかと思いますが、間違いないですかね。。? 追記4 --- **「cookie "CAKEPHP" について」** 参考までですが、よくみるとcakePHPで自動で生成される、keyがCAKEPHPのcookieも、localhost:4200にredirect後には送信されていなかった →config/app.phpの'Session'にてdomainの設定をしてみる →しかしoptionにdomainの項目はない 上記質問と直接は関係ありませんが、ここから何か分かるかもしれないという意図で追記しておきます
回答: 同サーバー内であってもドメインが違えばCookie共有はデフォルトのやり方ではできません。 もちろん共有不可ではないので「Cookie 別ドメイン」 などで検索し、ご自身の状況に合った情報を見つけて試してみてください。 ポート未指定だとデフォルトが使用され(Apacheならたぶん80)、ポート違えば別ドメイン扱いです。ポートも含めてドメインと捉えてもらえればと。