2

Play 2.0.4 プロジェクトに Play-Authenticate モジュールを統合しました。私のプロジェクトには、従来の Web ビューとモバイル ビューの 2 つのビューがあります。アプリケーションがログアウトすると、インデックス ページに戻ります。ルート テーブルでは、ログアウト機能が次の方向を指していることがわかります。

GET     /logout                             com.feth.play.module.pa.controllers.Authenticate.logout

モジュールコードでは次のようになります。

public static Result logout() {
    noCache(response());

    return PlayAuthenticate.logout(session());
}

アプリケーションが動作する方法は、Web アプリケーションが必要とする css/js リンクを含む main.scala.html ファイルと、モバイル テンプレートのコンテンツが使用する css/js を含む mobile_main.scala.html ページです。私が抱えている問題は、アプリケーション (モバイルまたは Web) からサインアウトすると、Web アプリケーションのインデックスである index.scala.html にリダイレクトされることです。必要に応じてモバイル インデックス ページに移動できるように、これを変更する方法はありますか?

ありがとう

編集: これは、ログインが成功した後にアプリケーションが戻るページにも適用されます。

もう少し調べた後、問題をGlobal.javaにさかのぼります。私の問題を解決するには、以下の方法を変更する必要があると思います。おそらく渡された引数に応じて、別のページをロードできるようにします。

        @Override
        public Call login() {
            // Your login page
            return routes.Application.login();
        }

        @Override
        public Call afterAuth() {
            // The user will be redirected to this page after authentication
            // if no original URL was saved
            return routes.Application.index();
        }

        @Override
        public Call afterLogout() {
            return routes.Application.index();
        }
4

1 に答える 1

0

方法の 1 つは、セッションに状態を保存することです。たとえば、2 つの状態を持つことができます。mobile session次にweb session、リダイレクトする前に状態を確認します。

if mobile session then redirect mobile index else redirect index
于 2013-04-29T10:03:52.700 に答える