gpt4 book ai didi

scala - 如何同时使用cookie和BASIC认证?

转载 作者:行者123 更新时间:2023-12-04 04:38:53 24 4
gpt4 key购买 nike

我正在使用 cookie 和基本身份验证的组合。在基本认证中,它需要一个函数

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

并返回 Directive[T] .

我希望在 cookie 上创建一个带有函数的指令
HttpCookie => Future[T]

并返回 Directive[T] .

因此,我可以执行 cookieAuth | basicAuth 的组合身份验证指令.

我能得到的最接近的是:
def myFunction:HttpCookie => Future[String]

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

但是签名不匹配。我得到了异常(exception):
type mismatch;
found : spray.routing.Directive[shapeless.::[String,shapeless.HNil]]
required: spray.routing.Directive[String]
^

最佳答案

tl;博士 生成 Directive1[String] 类型的结果.

最初的问题是类型不匹配。纯净Directive trait 采用上限为 HList 的类型参数所以结果类型基于 Shapeless 的 HList Directive[String :: HNil] .

routing声明为 Directive[HNil] 输入别名的包对象和 Directive[T :: HNil] , Directive0Directive1[T] ,分别。

关于scala - 如何同时使用cookie和BASIC认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19222578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com