質問: タイトルの通りなのですが、例えばログイン後に見られるページをブックマークしていました。 あるユーザーは、2ヶ月ぶりにそのブックマークを開きました。 しかし、cookieが切れていたのか、ログインページにリダイレクトさせられました。 ユーザーは自分のアドレスとパスワード入力してログインしました。 そしたらトップページにアクセスしてしましました。 、、、と、これが普通だとは思うのですが、ここでログインし直したらトップページではなく「そのブックマークを開いたページ」に移動させたいのですが、これにはログインページを制御するコントローラーが、遷移元のURLを知る必要があります。 あ、フレームワークを使っていてfuelphpなのですが、こういう機構はないのでしょうか? 現在開発中の使用は、ログイン後のコントローラーのベースクラスのbeforeでゲストユーザーは通さないようにしています。 ``` if ( ! \Auth::check()) { // ログインページへリダイレクト \Response::redirect('naisyo/secret/index'); } ``` Response::redirect_backやInput::referrerなどがあるようです。 ログインページに来た時のメソッドのど頭で ``` Response::redirect(\Input::referrer()); ``` テストしてみましたが空文字で返ってきますので、https://teratail.comのようにセグメントなしにリダイレクトされます。 どうしたら実現できるでしょうか? ログイン後のコントローラーのベースクラスのbeforeで該当のURLをPOSTなどで送ってそこから取得ともできなくもないですが、なんか違うような気がします。
回答: 一般論として、 「cookieが切れていたので、“**リダイレクトする前にセッションに今アクセスしているURLを保持してから**” ログインページにリダイレクトさせ」ます。 ログインが成功したら、セッションの情報を元にリダイレクトします。