gpt4 book ai didi

cookies - VertX Web无法删除Cookie

转载 作者:行者123 更新时间:2023-12-02 13:03:21 26 4
gpt4 key购买 nike

我正在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:

enter image description here

当我想再次删除该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功能,而是cookie的工作方式。

关于cookies - VertX Web无法删除Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40730375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com