在play框架中使用securesocial从视图中获取用户信息

时间:2014-09-23 18:16:07

标签: playframework securesocial

我在views文件夹中有一个main.html。我想获取当前登录的用户信息到视图,但我不想通过参数传递它。有办法吗?

main.html中

 @(title: String)(content: Html)
 <html>
    <head></head>
    <body>Welcome {User}!</body>
 </html>

2 个答案:

答案 0 :(得分:1)

您可以使用从请求中提取用户的方法创建对象。

object UserInfo {
  def getCurrentUser(implicit request: RequestHeader): Option[Identity] = {
    request match {
      case r: SecuredRequest[_] => Some(r.user)
      case r: RequestWithUser[_] => r.user
      case _ => None
    }
  }
}

然后在视图中,您可以静态地使用此方法。

@(title: String)(content: Html)(implicit request: RequestHeader)
@import app.auth.UserInfo
<html>
    <head></head>
    <body>Welcome @UserInfo.getCurrentUser !</body>
 </html>

答案 1 :(得分:0)

不,视图中需要的任何内容都需要从控制器传入。