VertX Web不删除Cookie

我在VertX中创建了cookie,并且希望在用户注销后再次删除它们。

AccountController.handleLogin(vertx, router.post("/login")) 

 fun handleLogin(vertx: Vertx, route: Route) { route.handler { rtx -> rtx.request().bodyHandler { btx -> vertx.executeBlocking<Login>({ it.complete(AccountController.login(Json.decodeValue(String(btx.bytes), Login::class.java))) }, { if (it.succeeded()) { // set some cookies rtx.addCookie(Cookie.cookie("atom-session", it.result().session).setHttpOnly(true).setSecure(secure)) 

Chrome现在可以看到这个cookie:

在这里输入图像描述

当我想再次删除该cookie时:

 AccountController.handleLogout(vertx, router.post("/logout")) 

 fun handleLogout(vertx: Vertx, route: Route) { route.handler { rtx -> rtx.request().bodyHandler { btx -> vertx.executeBlocking<Logout>({ val logout = Json.decodeValue(String(btx.bytes), Logout::class.java) it.complete(AccountController.logout(logout)) }, { if (it.succeeded()) { log.info("Cookies Will No Be Removed ...") rtx.removeCookie("atom-session") log.info("DONE!") 

我可以看到正在打印的消息,说明cookie将被删除,但当我在Chrome中刷新资源时,所有登录时设置的cookie仍然存在。 包括atom-session

我在做这个错误还是这是一个VertX的错误?

removeCookie方法将从请求对象中删除它,但不会从Web客户端中删除一个cookie。 为了强制将其从客户端删除,必须将cookie发送回到过期日期。 比如你应该这样做:

 rtx.getCookie("atom-session").setMaxAge(0) 

这不是一个vert.x功能本身,但如何工作。

Interesting Posts