简体   繁体   English

提升跟踪登录用户

[英]Lift tracking a logged in user

I have a sitemap defined like this in Boot.scala 我在Boot.scala中有一个像这样定义的站点地图

   def sitemap() = SiteMap(
      Menu(S ? "Home") / "index",
      Menu(S ? "Login") / "login",
      Menu(S ? "Do Logged in Stuff") / "loggedinstuff"  >> If( () => loggedInUser.is != Empty, "You must be logged in") )

Also I have a loggedInUser defined in Boot.scala like this 此外,我在Boot.scala中定义了一个loggedInUser

object loggedInUser extends SessionVar[Box[String]](Empty)

When I have a user log in, I want them to change my loggedInUser to be the username that they successfully logged in as. 当我有用户登录时,我希望他们将我的loggedInUser更改为他们成功登录的用户名。

  • Is this an okay way to deal with logging in users? 这是处理用户登录的好方法吗?
  • Where should I keep my loggedInUser object. 我应该在哪里保留我的loggedInUser对象。 Boot.scala? Boot.scala? Somewhere else? 别的地方?
  • How do I update loggedInUser so that he will now work to show the "loggedinstuff" page? 如何更新loggedInUser以便他现在可以显示“loggedinstuff”页面?

I was able to get it to work by doing like here 通过这样做,我能够让它工作

Scala and Lift and SessionVar that loses it contents Scala和Lift以及失去内容的SessionVar

Made this object 做了这个对象

object SessionState {

   object loggedInUserName extends SessionVar[Box[String]](Empty)
}

and then did 然后呢

SessionState.loggedInUserName(Full(username))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM