2

我在我的 Play 2.0.4 项目中集成了 Play-Authenticate 模块。我的项目有两个视图,一个传统的 Web 视图和一个移动视图。当应用程序注销时,它只是返回到索引页面。在路由表中,我看到注销功能指向此:

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

在模块代码中看起来像这样:

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

    return PlayAuthenticate.logout(session());
}

应用程序的工作方式是有一个 main.scala.html 文件,其中包含 Web 应用程序所需的 css/js 链接,以及一个带有移动模板内容使用的 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

一种方法是将您的状态保存在会话中,例如您可以有两种状态:mobile session然后web session在重定向之前在条件中验证这一点

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