質問編集履歴

6 追記④ 追加  cookie CAKEPHP について

kazoogon

kazoogon score 272

2018/11/19 01:25  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
追記
---
```
$this->response = $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自体生成されません。
追記②
---
[参考URL](http://cakephp.eu/development/sessions.html)を元にconfig/app.phpに追記
 →しかし挙動に変化なし
```
'Session' => [
       'defaults' => 'php',
//以下ini部分を追記
       'ini' => [
         'session.cookie_path' => '/',
         'session.cookie_domain' => '.localhost:4200'
       ]
   ],
```
追記③
---
**本番環境について(上記はlocalhostを使用するぐらいなので、開発環境です)**
・LoginページのみcakePHPのviewを使用する(securityを考慮し、cakePHPのformを使用するため)
・login以外のページはangularを使用し同じサーバ内に設置、cakePHPをjsonデータを返すAPIとしか使用していない
となるとポート番号が違うだけなので、path => '/' と設置すれば良いだけかと思いますが、間違いないですかね。。?
となるとポート番号が違うだけなので、path => '/' と設置すれば良いだけかと思いますが、間違いないですかね。。?
追記④
---
**「cookie "CAKEPHP" について」**
参考までですが、よくみるとcakePHPで自動で生成される、keyがCAKEPHPのcookieも、localhost:4200にredirect後には送信されていなかった
 →config/app.phpの'Session'にてdomainの設定をしてみる
 →しかしoptionにdomainの項目はない
上記質問と直接は関係ありませんが、ここから何か分かるかもしれないという意図で追記しておきます
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

5 題名の変更

kazoogon

kazoogon score 272

2018/11/18 21:29  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
追記
---
```
$this->response = $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自体生成されません。
追記②
---
[参考URL](http://cakephp.eu/development/sessions.html)を元にconfig/app.phpに追記
 →しかし挙動に変化なし
```
'Session' => [
       'defaults' => 'php',
//以下ini部分を追記
       'ini' => [
         'session.cookie_path' => '/',
         'session.cookie_domain' => '.localhost:4200'
       ]
   ],
```
追記③
---
本番環境
**本番環境について(上記はlocalhostを使用するぐらいなので、開発環境です)**
・LoginページのみcakePHPのviewを使用する(securityを考慮し、cakePHPのformを使用するため)
・login以外のページはangularを使用し同じサーバ内に設置、cakePHPをjsonデータを返すAPIとしか使用していない
となるとポート番号が違うだけなので、path => '/' と設置すれば良いだけかと思いますが、間違いないですかね。。?
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

4 「追記③」の記入  本番環境について

kazoogon

kazoogon score 272

2018/11/18 21:27  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
追記
---
```
$this->response = $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自体生成されません。
追記②
---
[参考URL](http://cakephp.eu/development/sessions.html)を元にconfig/app.phpに追記
 →しかし挙動に変化なし
```
'Session' => [
       'defaults' => 'php',
//以下ini部分を追記
       'ini' => [
         'session.cookie_path' => '/',
         'session.cookie_domain' => '.localhost:4200'
       ]
   ],
```
```
追記③
---
本番環境
・LoginページのみcakePHPのviewを使用する(securityを考慮し、cakePHPのformを使用するため)
・login以外のページはangularを使用し同じサーバ内に設置、cakePHPをjsonデータを返すAPIとしか使用していない
となるとポート番号が違うだけなので、path => '/' と設置すれば良いだけかと思いますが、間違いないですかね。。?
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

3 コード追記

kazoogon

kazoogon score 272

2018/11/18 17:32  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
追記
---
```
$this->response = $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自体生成されません。
ちなみにdomain部分は '/' こうしてもcookie自体生成されません。
追記②
---
[参考URL](http://cakephp.eu/development/sessions.html)を元にconfig/app.phpに追記
 →しかし挙動に変化なし
```
'Session' => [
       'defaults' => 'php',
//以下ini部分を追記
       'ini' => [
         'session.cookie_path' => '/',
         'session.cookie_domain' => '.localhost:4200'
       ]
   ],
```
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

2 コード変更 domain部分

kazoogon

kazoogon score 272

2018/11/18 09:39  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
追記
---
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'domain' => 'localhost',
       'domain' => 'localhost:4200',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
「ちなみにdomainの設定をするとcookie自体生成されなくなります」
この文とコードを忘れておりました。
ちなみにdomain部分は '/' こうしてもcookie自体生成されません。
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

1 コード追記

kazoogon

kazoogon score 272

2018/11/18 07:47  投稿

cakePHP ページ遷移後にcookieが消える
今していること
---
**cakePHP3.6**を使用し、ログイン認証後に "auth"というkeyのcookieを設置する
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
困っていること
---
コード内に記載しましたが、cookie設置後にlocalhost:4200に遷移
 →遷移先ではchromeのdevelop tool, application内にcookieが表示されない
 →browser上の戻るボタンでlogin pageに戻ると、cookieがdevelop tool上で表示されている(言い換えればcookie自体は生成されている)
今まで試したこと
---
調べてみますと、大体の解決策がpathを '/'にする。でしたがその対策では効果がありませんでした。(コード内には既に記載済)
よろしくお願いします。
よろしくお願いします。
追記
---
```
$this->response = $this->response
   ->withHeader("X-FRAME-OPTIONS", "SAMEORIGIN")
   ->withCookie('auth', [
       'value' => "hoge",
       'path' => '/',
       'domain' => 'localhost',
       'secure' => false,
       'httpOnly' => true,
       'expire' => strtotime('+1 month'),
     ])
   ->withLocation('http://localhost:4200');
```
「ちなみにdomainの設定をするとcookie自体生成されなくなります」
この文とコードを忘れておりました。
ちなみにdomain部分は '/' こうしてもcookie自体生成されません。
  • PHP

    29314 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CakePHP

    2795 questions

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

  • Cookie

    301 questions

    HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る