我在网上浏览找到某种教程,但我找不到它.
我想我可以使用securesocial提供的twitter示例
例:
def onlyAdmin = SecuredAction(WithAuth("admin")) { implicit request =>
Ok("You could see this since you are admin")
}
case class WithAuth(role: String) extends Authorization {
def isAuthorized(user: Identity) = {
val existingDbUser = User.findUserByProviderUserId(user)
existingDbUser.hasRole(role)
}
User.findUserByProviderUserId(user)调用db以查找存储的用户及其角色.
我不希望每次都调用db并使用Identity.
你怎么解决这个问题?
最佳答案 那将是正确的方法.您可以从UserService.save()方法返回您自己模型的实例(只要它实现Identity).这将允许您返回您的User对象,然后直接运行user.hasRole(role)而无需再次查询数据库.但是查询需要在某个时刻完成.