要ログインページのURLをメールから直接開けないケース
要ログインページのURLをメールで送信して開いてもらった場合、
ログイン後の遷移先が、指定のURLではなくRouting.basePathになる場合があります。
Yahooメールで確認しましたが、他のブラウザメールでも発生するかもしれません。
メールアドレス登録確認などでは、ログインリダイレクト関連の設計に注意する必要があります。
原因は、以下の場所と思われます。
認証の無い状態で、要ログインページのURLを開いた場合、
一度ログインアクションにリダイレクトした後、startup()の以下の箇所を通ります
cake/libs/controllers/components/auth.php:308行目
if ($loginAction == $url) { if (empty($controller->data) || !isset($controller->data[$this->userModel])) { if (!$this->Session->check('Auth.redirect') && env('HTTP_REFERER')) { $this->Session->write('Auth.redirect', $controller->referer(null, true)); } return false; }
YahooメールでhtmlメールのURLをクリックした場合、リファラにメールボックスのURLが送信されています。
そのため、ここで元のURLへのリダイレクト設定が消されてしまうようです。
おそらく、クリック詐欺的なURLを無効にする対策と思われますが、ちょっと注意です。