返信先: 会員情報編集時のメール認証でメールが送信されない
フォーラム › バグ報告 › 会員情報編集時のメール認証でメールが送信されない › 返信先: 会員情報編集時のメール認証でメールが送信されない
少し手かがりが掴めました。
念のため、サーバー側の設定でブラウザキャッシュも確認しましたが、「オフ」になっておりました。
テスト環境はいつもできるだけデフォルトに近い環境で行っているのですが、条件が合致すると、不具合が再現してしまいます。
素人ながら、甚だ僭越ではございますが、よろしければ少し教えて頂きたくお願いいたします。
FFW Ver.1.2.3 の該当のコードにおいて
576 /* 「戻る」でドキュメント有効切れを防ぐ */
if(!empty($preventExpiration) && $preventExpiration == 'yes'){
function friendly_functions_for_welcart_add_header_session()
{
580 header("Cache-Control: private");
header("Pragma: no-cahce");
header("Expires: ");
header("Last-Modified: ");
}
add_action('send_headers', 'friendly_functions_for_welcart_add_header_session');
}
こちらの
580行目 cache-control: private
で、クライアント側でキャッシュ可能になっているのではないでしょうか?
機能上必要なのだと思いますが、
Chrome の検証ツールのネットワークで確認しましたところ、この機能を「利用する」にしますと
https://〇〇〇.com/usces-member/?usces_page=member_edit
がディスクキャッシュから配信されているのを確認しました。
ディスクキャッシュを使っているために、サーバーに取りに行かず、本人確認メールの送付がトリガーされなかったのかと推測しました。
このあたりの仕様と挙動が正しいものなのかも含めて私にはよくわからないのですが、想定された挙動でしょうか?
試しに、ネットワークにて ☑キャッシュを無効化 にしてやると、キャッシュされずにサーバーから読み込まれることで、本人確認メールが送られるようになります。
ブラウザでスーパーリロードしても、その瞬間にメールが送信されてきます。
お客様に都度リロードを促すことも現実的ではないので、どうしたものかと思います。
あるいは、ディスクキャッシュされていても、本来はメールは送信されるものなのでしょうか?
申し訳ありませんが、上記の挙動確認のため、ディスクキャッシュされるか、その場合メールが送信されるか、ご確認頂けないでしょうか。お忙しいところ恐縮ですがよろしくお願いいたします。
以下、私の環境で発生した、メールが送信されない不具合の発生機序を示します
(キャッシュの取り扱いの検証のため、メール認証を経由する場合も、同一端末、同一ブラウザで操作します。)
1.マイページから 会員情報編集へ>> をクリック
→ メールが送信されるのを確認する(この時点で不具合は発生していない)
2.FFWにて、ユーザビリティ設定 > 「戻る」によるドキュメント有効切れ防止 → 利用する に変更する → 設定を保存
3.会員認証 (認証メールを送信しました) の画面でブラウザをスーパーリロード(キャッシュを作る) → 再び本人確認メールが送られる
4.会員をログアウトする
5.ログイン画面からログインする
6.マイページから 会員情報編集へ>> をクリック
このとき https://〇〇〇.com/usces-member/?usces_page=member_edit のレスポンスヘッダーが cache-control:private なのでディスクキャッシュから読み込まれる → メールは送信されない(不具合発生)
ここで 4.5.6.を何度繰り返しても、本人確認メールが送られることはありません。(不具合の継続確認)
7.6でブラウザをリロードする
このとき https://〇〇〇.com/usces-member/?usces_page=member_edit が強制的にサーバーから読み込まれる → メールが送信される
試しに、580行目をコメントアウトしますと、メールは送られます。
PAGE TOP