2014-02-24 31 views
0

如何在處理請求並構建響應後刪除cookie?如何刪除Finatra上的cookies?

我曾嘗試下面的代碼,但它似乎並沒有工作:

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

我找不到上ResponseBuilder任何方法將去除一個cookie,無論是。

回答

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天僅僅是在過去的任意時間「持續時間」。