scala – 每次都在我的网络应用程序的标题中显示登录用户信息

前端之家收集整理的这篇文章主要介绍了scala – 每次都在我的网络应用程序的标题中显示登录用户信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在与安全的社交整合进行游戏2.1.截至目前,我能够使用SALAT将securesocial与mongod db集成.现在我可以登录/注销.但现在我想要的是如果用户登录,那么我需要在我的Web应用程序的标题显示像头像等用户信息,我不知道如何在 scala.html中获取用户信息而不传递params控制器.我不能每次都这样做.

我们是否有类似于spring security的东西,它可以从会话中获取用户并使用EL或spring taglib来显示用户信息???

解决方法

遗憾的是,这个社区非常不活跃或者不想回答这个问题.即使在几年之后,我仍然会发现spring和 java社区回答了最基本的问题.所以这就是我所做的.非常欢迎任何改进或建议.

在我的控制器中写了一个方法,它将用户作为隐式方法返回.

implicit def user(implicit request: RequestHeader):Option[Identity] = {
    SecureSocial.currentUser
  }

将此用户传递给我的模板并使其隐式.想知道为什么它不能直接从控制器使用它.我必须明确传递它,这非常奇怪.

@(implicit user:Option[securesocial.core.Identity])

由于用户信息必须位于所有页面中,因此必须将其包含在主模板或主模板中,调用另一个呈现用户信息的模板.在我的主模板中=>

@(title: String,nav: String = "")(content: Html)(implicit user:Option[securesocial.core.Identity]=None)

然后一些查看相关的代码

@if(user.isDefined){
      <li>          
         <a href="@securesocial.controllers.routes.LoginPage.logout()"/>logout</li>
         }else{
      <li>
        <a href="@securesocial.core.providers.utils.RoutesHelper.login()">Login</a></li>
 }

猜你在找的Scala相关文章