Akka HTTP:从 Directive1[String] 中检索 ByteString

问题描述

我几乎没有开始使用 Scala 并尝试编写小项目。 我编写了消耗 graphql 请求的服务器。现在我有 jwt 令牌的问题,因为用于验证的方法返回 Directive1[ByteString] 而不是 ByteString。 我可以以某种方式检索它吗?验证后我需要从那个 jwt 令牌中声明数据

这是我正在努力处理的代码

val directive: Directive1[ByteString] = jwt.jwtAuthenticate(Unmarshaller._fromStringUnmarshallerFromByteStringUnmarshaller)
val claim: String = ???

解决方法

Akka Http Dirrective docs 中所述 - 指令是路由的构建块。所以你需要处理路由,比如:

val claim: String = dirrective { claim: String => // your token string
  complete((StatusCodes.Ok,"Handled")) // give HTTP response
}