我想为我的Lift应用程序创建一个身份验证路由。
www.myapp.com/user/loginUsers.login(email, password)方法验证凭据。Q:如何告诉Lift认证通过/user/login传入的凭据
发布于 2013-05-20 15:54:54
这是过于简单,但类似的东西将允许您创建一个url,您可以张贴到。JSON提取不是很安全,但是应该让您了解这是如何工作的。
在Boot.scala中
LiftRules.dispatch.append(new RestHelper{
serve {
case JsonPost("user" :: "login" :: Nil, (json, _)) =>
//extract JSON from json object to get username and password
val userEmail:String = (json \ "username").extract[String]
val password = (json \ "password").extract[String]
User.login(userEmail, password) match {
case Full(r) =>
User.current(true)
InMemoryResponse(Array(), Nil, Nil, 200)
case _ => ForbiddenResponse
}
}
})在User.scala中
object User {
object loggedIn extends SessionVar[Boolean](false)
}然后可以使用if(User.loggedIn.get){ ... }测试用户是否在任何地方登录。这将适用于添加到有状态分派中的任何内容,如果使用LiftRules.statelessDispatch,则会话将不存在。
发布于 2013-05-20 14:03:55
我创建了一个快速的工作示例,您可以查看github。它使用了您提供的代码,因此希望它非常简单。你可以在这里看看:httpauth
但是,从本质上说,要将代码添加到站点地图中,只需将以下内容添加到Boot.scala中
Menu("Login Required") / "user" / "login"并确保您的webapp根目录中有一个user/login.html。
https://stackoverflow.com/questions/16640124
复制相似问题