1

在用户登录到我的 Scala Lift Web 应用程序后,我想重定向到某个页面。我发现这个答案似乎不起作用:

在我的User对象(这是 a MetaMegaProtoUser)中,我像这样覆盖以下方法:

object User extends User with MetaMegaProtoUser[User] {
    override def loginFirst = If(
    loggedIn_? _,
    () => {
      import net.liftweb.http.{RedirectWithState, RedirectState}
      val uri = Full("/myPicks")
      println("login sucessful .. redirecting!..")
      RedirectWithState(
        loginPageURL,
        RedirectState( ()=>{loginRedirect.set(uri)})
      )
    }
  )


}

这行不通。有任何想法吗?

4

1 回答 1

1

loginFirst定义了一个 LocParam,可用于指定在用户未登录时将其发送到何处。它与 SiteMap 结合使用。

对于您要保护的页面,您可以修改该条目,例如:

Menu("Protected Page") / "protected" >> User.loginFirst

这应该测试您访问时用户是否已登录/protected,如果没有,请设置loginRedirect SessionVar并显示登录表单。成功登录后,您应该被重定向到 中指定的页面loginRedirect

我相信你也可以只使用:override def homePage = "/myPicks"如果你想设置一个默认页面重定向到。

于 2013-08-11T16:14:19.980 回答