0

处理请求并构建响应后,如何删除 cookie?

我尝试了以下代码,但它似乎不起作用:

get("/login") { request =>
  val message = request.cookies.get("flash-message").map(_.value)
  request.removeCookie("flash-message")
  render.view(LoginView(message)).toFuture
}

我也找不到任何ResponseBuilder可以删除 cookie 的方法。

4

1 回答 1

0

事实证明,这样做的方式是通常的“JavaScript”方式。只需创建一个过期的 cookie 并返回,如下所示:

import com.twitter.finagle.http.Cookie
import com.twitter.util.Duration
import java.util.concurrent.TimeUnit

get("/login") { request =>
  val message = request.cookies.get("flash-message").map(_.value)
  val c = Cookie("flash-message", "")
  c.maxAge = Duration(-10, TimeUnit.DAYS)
  render.view(LoginView(message)).cookie(c).toFuture
}

当然,过去 10 天只是一个任意的“持续时间”。

于 2014-02-25T01:51:46.040 回答