【问题标题】:How to remove cookies on Finatra?如何删除 Finatra 上的 cookie?
【发布时间】:2014-02-24 22:40:08
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: scala finagle finatra


    【解决方案1】:

    事实证明,这样做的方式是通常的“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 天只是过去的任意“持续时间”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-05
      • 2011-10-01
      • 2016-03-09
      • 2023-02-09
      • 2013-04-04
      • 2011-01-09
      • 2015-02-24
      相关资源
      最近更新 更多