2

Cookie と基本認証を組み合わせて使用​​しています。ベーシック認証では、関数がかかります

Option[UserPass] => Future[Option[T]]

を返しますDirective[T]

関数を取る Cookie にディレクティブを作成したい

HttpCookie => Future[T]

を返しますDirective[T]

したがって、 の auth ディレクティブを組み合わせて実行できますcookieAuth | basicAuth

私が得ることができる最も近いものは次のとおりです。

def myFunction:HttpCookie => Future[String]

val cookieAuth:Directive[String] = cookie("MyCookie").flatMap { cookie =>
  onSuccess(myFunction(cookie))
}

しかし、署名は一致しません。私は例外を受け取ります:

type mismatch;
  found   : spray.routing.Directive[shapeless.::[String,shapeless.HNil]]
  required: spray.routing.Directive[String]
         ^ 
4

1 に答える 1