安全なイベントタイプがあり、ユーザーがログインしているかどうかを確認し、ログインしていない場合はログインページにリダイレクトします。
<event-types>
<event-type name="securedPage">
<before>
<broadcasts>
<message name="CheckLogin"/>
</broadcasts>
</before>
<results>
<result name="NeedLogin" do="page.login" redirect="true"/>
</results>
</event-type>
</event-types>
ログインページには、イベントハンドラーにリンクするフォームがあり、action.login
ログインが成功した場合はユーザーのホームページにリダイレクトされ、成功しなかった場合はログインページが再表示されます。
<event-handler name="action.login">
<broadcasts>
<message name="Login"/>
</broadcasts>
<results>
<result name="LoggedIn" do="page.user.home" redirect="true"/>
<result name="NotLoggedIn" do="page.login"/>
</results>
</event-handler>
このコードはうまく機能しますが、私が今直面している問題は、ユーザーが別のページを要求した場合でも、常にユーザーのホームページにリダイレクトされることです。フォームはaction.loginイベントに投稿され、結果do
はハードコーディングされてpage.user.home
いるため、ユーザーが最初にリクエストしたページを追跡し、そこにリダイレクトするようにコードを変更するにはどうすればよいですか?