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]
^