我正在网上浏览以找到某种教程,但我找不到它。 我想我可以使用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来查找存储的用户及其角色。
我不希望每次都调用数据库并使用Identity
。
你会如何解决这个问题?
答案 0 :(得分:2)
那将是正确的方法。您可以从UserService.save()方法返回您自己模型的实例(只要它实现Identity)。这将允许您返回您的User对象,然后直接运行user.hasRole(role)而无需再次查询数据库。但是查询需要在某个时刻完成。