0

我有以下用于 json 登录的验证器:

  val loginValidator: Reads[JsObject] = (
    ((__ \ 'username).json.pickBranch(Reads.of[JsString]) or
      (__ \ 'email).json.pickBranch(Reads.of[JsString] keepAnd email)) and
    (__ \ 'pw).json.pickBranch(Reads.of[JsString])
  ).reduce

我怎样才能让它也使用一个函数来散列密码:String => String(假设它是一个方法 Password.hash(plain:String)?

4

1 回答 1

0

好的,这似乎有效:

  val loginValidator: Reads[JsObject] = (
    ((__ \ 'username).json.pickBranch(Reads.of[JsString]) or
      (__ \ 'email).json.pickBranch(Reads.of[JsString] keepAnd email)) and
    (__ \ 'pw).json.pickBranch(Reads.of[JsString]).map(a => Json.obj("pw" -> User.Password.hash((a \ "pw").as[String])))
  ).reduce

但似乎还有比这更好的方法。有人知道吗?

于 2013-08-29T19:52:31.633 回答