[{"data":1,"prerenderedAt":650},["ShallowReactive",2],{"navigation":3,"-examples-handle-cookie":179,"-examples-handle-cookie-surround":645},[4,86,128,156,163],{"title":5,"path":6,"stem":7,"children":8,"icon":85},"Guide","/guide","1.guide/0.index",[9,12,48,64],{"title":10,"path":6,"stem":7,"icon":11},"Getting Started","pixel:play",{"title":5,"icon":13,"path":14,"stem":15,"children":16,"page":47},"ph:book-open-duotone","/guide/basics","1.guide/1.basics",[17,22,27,32,37,42],{"title":18,"path":19,"stem":20,"icon":21},"Request Lifecycle","/guide/basics/lifecycle","1.guide/1.basics/1.lifecycle","icon-park-outline:handle-round",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/guide/basics/routing","1.guide/1.basics/2.routing","solar:routing-bold",{"title":28,"path":29,"stem":30,"icon":31},"Middleware","/guide/basics/middleware","1.guide/1.basics/3.middleware","mdi:middleware-outline",{"title":33,"path":34,"stem":35,"icon":36},"Event Handlers","/guide/basics/handler","1.guide/1.basics/4.handler","mdi:function",{"title":38,"path":39,"stem":40,"icon":41},"Sending Response","/guide/basics/response","1.guide/1.basics/5.response","tabler:json",{"title":43,"path":44,"stem":45,"icon":46},"Error Handling","/guide/basics/error","1.guide/1.basics/6.error","tabler:error-404",false,{"title":49,"icon":50,"path":51,"stem":52,"children":53,"page":47},"API","material-symbols-light:api-rounded","/guide/api","1.guide/900.api",[54,59],{"title":55,"path":56,"stem":57,"icon":58},"H3","/guide/api/h3","1.guide/900.api/1.h3","material-symbols:bolt-rounded",{"title":60,"path":61,"stem":62,"icon":63},"H3Event","/guide/api/h3event","1.guide/900.api/2.h3event","material-symbols:data-object-rounded",{"title":65,"icon":66,"path":67,"stem":68,"children":69,"page":47},"Advanced","hugeicons:more-01","/guide/advanced","1.guide/901.advanced",[70,75,80],{"title":71,"path":72,"stem":73,"icon":74},"Plugins","/guide/advanced/plugins","1.guide/901.advanced/1.plugins","clarity:plugin-line",{"title":76,"path":77,"stem":78,"icon":79},"WebSockets","/guide/advanced/websocket","1.guide/901.advanced/2.websocket","hugeicons:live-streaming-02",{"title":81,"path":82,"stem":83,"icon":84},"Nightly Builds","/guide/advanced/nightly","1.guide/901.advanced/9.nightly","game-icons:barn-owl","i-ph:book-open-duotone",{"title":87,"path":88,"stem":89,"children":90,"icon":92},"H3 Utils","/utils","2.utils/0.index",[91,93,98,103,108,113,118,123],{"title":87,"path":88,"stem":89,"icon":92},"ph:function-bold",{"title":94,"path":95,"stem":96,"icon":97},"Request","/utils/request","2.utils/1.request","material-symbols-light:input",{"title":99,"path":100,"stem":101,"icon":102},"Response","/utils/response","2.utils/2.response","material-symbols-light:output",{"title":104,"path":105,"stem":106,"icon":107},"Cookie","/utils/cookie","2.utils/3.cookie","material-symbols:cookie-outline",{"title":109,"path":110,"stem":111,"icon":112},"Security","/utils/security","2.utils/4.security","wpf:key-security",{"title":114,"path":115,"stem":116,"icon":117},"Proxy","/utils/proxy","2.utils/5.proxy","arcticons:super-proxy",{"title":119,"path":120,"stem":121,"icon":122},"More utils","/utils/more","2.utils/9.more","mingcute:plus-line",{"title":124,"path":125,"stem":126,"icon":127},"Community","/utils/community","2.utils/99.community","lets-icons:external",{"title":129,"path":130,"stem":131,"children":132,"icon":134},"Examples","/examples","4.examples/0.index",[133,135,140,144,148,152],{"title":129,"path":130,"stem":131,"icon":134},"ph:code",{"title":136,"path":137,"stem":138,"icon":139},"Cookies","/examples/handle-cookie","4.examples/handle-cookie","ph:arrow-right",{"title":141,"path":142,"stem":143,"icon":139},"Sessions","/examples/handle-session","4.examples/handle-session",{"title":145,"path":146,"stem":147,"icon":139},"Static Assets","/examples/serve-static-assets","4.examples/serve-static-assets",{"title":149,"path":150,"stem":151,"icon":139},"Stream Response","/examples/stream-response","4.examples/stream-response",{"title":153,"path":154,"stem":155,"icon":139},"Validate Data","/examples/validate-data","4.examples/validate-data",{"title":157,"path":158,"stem":159,"children":160,"icon":162},"Migration guide for v1 to v2","/migration","5.migration/0.index",[161],{"title":157,"path":158,"stem":159,"icon":162},"icons8:up-round",{"title":164,"path":165,"stem":166,"children":167,"page":-1},"Blog","/blog","99.blog",[168,171,175],{"title":164,"path":165,"stem":169,"icon":170},"99.blog/index","i-lucide-file-text",{"title":172,"path":173,"stem":174,"icon":170},"H3 1.8 - Towards the Edge of the Web","/blog/v1.8","99.blog/1.v1.8",{"title":176,"path":177,"stem":178,"icon":170},"H3 v2 beta","/blog/v2-beta","99.blog/2.v2-beta",{"id":180,"title":136,"body":181,"description":639,"extension":640,"meta":641,"navigation":642,"path":137,"seo":643,"stem":138,"__hash__":644},"content/4.examples/handle-cookie.md",{"type":182,"value":183,"toc":634,"icon":139},"minimark",[184,188,211,216,222,354,365,421,424,428,434,526,533,537,542,607,627,630],[185,186,187],"p",{},"Handling cookies with H3 is straightforward. There is three utilities to handle cookies:",[189,190,191,199,205],"ul",{},[192,193,194,198],"li",{},[195,196,197],"code",{},"setCookie"," to attach a cookie to the response.",[192,200,201,204],{},[195,202,203],{},"getCookie"," to get a cookie from the request.",[192,206,207,210],{},[195,208,209],{},"deleteCookie"," to clear a cookie from the response.",[212,213,215],"h2",{"id":214},"set-a-cookie","Set a Cookie",[185,217,218,219,221],{},"To set a cookie, you need to use ",[195,220,197],{}," in an event handler:",[223,224,229],"pre",{"className":225,"code":226,"language":227,"meta":228,"style":228},"language-ts shiki shiki-themes github-light github-dark github-dark","import { setCookie } from \"h3\";\n\napp.use(async (event) => {\n  setCookie(event, \"name\", \"value\", { maxAge: 60 * 60 * 24 * 7 });\n  return \"\";\n});\n","ts","",[195,230,231,254,261,293,337,348],{"__ignoreMap":228},[232,233,236,240,244,247,251],"span",{"class":234,"line":235},"line",1,[232,237,239],{"class":238},"so5gQ","import",[232,241,243],{"class":242},"slsVL"," { setCookie } ",[232,245,246],{"class":238},"from",[232,248,250],{"class":249},"sfrk1"," \"h3\"",[232,252,253],{"class":242},";\n",[232,255,257],{"class":234,"line":256},2,[232,258,260],{"emptyLinePlaceholder":259},true,"\n",[232,262,264,267,271,274,277,280,284,287,290],{"class":234,"line":263},3,[232,265,266],{"class":242},"app.",[232,268,270],{"class":269},"shcOC","use",[232,272,273],{"class":242},"(",[232,275,276],{"class":238},"async",[232,278,279],{"class":242}," (",[232,281,283],{"class":282},"sQHwn","event",[232,285,286],{"class":242},") ",[232,288,289],{"class":238},"=>",[232,291,292],{"class":242}," {\n",[232,294,296,299,302,305,308,311,314,318,321,324,326,329,331,334],{"class":234,"line":295},4,[232,297,298],{"class":269},"  setCookie",[232,300,301],{"class":242},"(event, ",[232,303,304],{"class":249},"\"name\"",[232,306,307],{"class":242},", ",[232,309,310],{"class":249},"\"value\"",[232,312,313],{"class":242},", { maxAge: ",[232,315,317],{"class":316},"suiK_","60",[232,319,320],{"class":238}," *",[232,322,323],{"class":316}," 60",[232,325,320],{"class":238},[232,327,328],{"class":316}," 24",[232,330,320],{"class":238},[232,332,333],{"class":316}," 7",[232,335,336],{"class":242}," });\n",[232,338,340,343,346],{"class":234,"line":339},5,[232,341,342],{"class":238},"  return",[232,344,345],{"class":249}," \"\"",[232,347,253],{"class":242},[232,349,351],{"class":234,"line":350},6,[232,352,353],{"class":242},"});\n",[185,355,356,357,364],{},"In the options, you can configure the ",[358,359,363],"a",{"href":360,"rel":361},"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie",[362],"nofollow","cookie flags",":",[189,366,367,373,383,389,395,405,413],{},[192,368,369,372],{},[195,370,371],{},"maxAge"," to set the expiration date of the cookie in seconds.",[192,374,375,378,379,382],{},[195,376,377],{},"expires"," to set the expiration date of the cookie in a ",[195,380,381],{},"Date"," object.",[192,384,385,388],{},[195,386,387],{},"path"," to set the path of the cookie.",[192,390,391,394],{},[195,392,393],{},"domain"," to set the domain of the cookie.",[192,396,397,400,401,404],{},[195,398,399],{},"secure"," to set the ",[195,402,403],{},"Secure"," flag of the cookie.",[192,406,407,400,410,404],{},[195,408,409],{},"httpOnly",[195,411,412],{},"HttpOnly",[192,414,415,400,418,404],{},[195,416,417],{},"sameSite",[195,419,420],{},"SameSite",[422,423],"read-more",{"to":88},[212,425,427],{"id":426},"get-a-cookie","Get a Cookie",[185,429,430,431,433],{},"To get a cookie, you need to use ",[195,432,203],{}," in an event handler.",[223,435,437],{"className":225,"code":436,"language":227,"meta":228,"style":228},"import { getCookie } from \"h3\";\n\napp.use(async (event) => {\n  const name = getCookie(event, \"name\");\n\n  // do something...\n\n  return \"\";\n});\n",[195,438,439,452,456,476,497,501,507,512,521],{"__ignoreMap":228},[232,440,441,443,446,448,450],{"class":234,"line":235},[232,442,239],{"class":238},[232,444,445],{"class":242}," { getCookie } ",[232,447,246],{"class":238},[232,449,250],{"class":249},[232,451,253],{"class":242},[232,453,454],{"class":234,"line":256},[232,455,260],{"emptyLinePlaceholder":259},[232,457,458,460,462,464,466,468,470,472,474],{"class":234,"line":263},[232,459,266],{"class":242},[232,461,270],{"class":269},[232,463,273],{"class":242},[232,465,276],{"class":238},[232,467,279],{"class":242},[232,469,283],{"class":282},[232,471,286],{"class":242},[232,473,289],{"class":238},[232,475,292],{"class":242},[232,477,478,481,484,487,490,492,494],{"class":234,"line":295},[232,479,480],{"class":238},"  const",[232,482,483],{"class":316}," name",[232,485,486],{"class":238}," =",[232,488,489],{"class":269}," getCookie",[232,491,301],{"class":242},[232,493,304],{"class":249},[232,495,496],{"class":242},");\n",[232,498,499],{"class":234,"line":339},[232,500,260],{"emptyLinePlaceholder":259},[232,502,503],{"class":234,"line":350},[232,504,506],{"class":505},"sCsY4","  // do something...\n",[232,508,510],{"class":234,"line":509},7,[232,511,260],{"emptyLinePlaceholder":259},[232,513,515,517,519],{"class":234,"line":514},8,[232,516,342],{"class":238},[232,518,345],{"class":249},[232,520,253],{"class":242},[232,522,524],{"class":234,"line":523},9,[232,525,353],{"class":242},[185,527,528,529,532],{},"This will return the value of the cookie if it exists, or ",[195,530,531],{},"undefined"," otherwise.",[212,534,536],{"id":535},"delete-a-cookie","Delete a Cookie",[185,538,539,540,221],{},"To delete a cookie, you need to use ",[195,541,209],{},[223,543,545],{"className":225,"code":544,"language":227,"meta":228,"style":228},"import { deleteCookie } from \"h3\";\n\napp.use(async (event) => {\n  deleteCookie(event, \"name\");\n  return \"\";\n});\n",[195,546,547,560,564,584,595,603],{"__ignoreMap":228},[232,548,549,551,554,556,558],{"class":234,"line":235},[232,550,239],{"class":238},[232,552,553],{"class":242}," { deleteCookie } ",[232,555,246],{"class":238},[232,557,250],{"class":249},[232,559,253],{"class":242},[232,561,562],{"class":234,"line":256},[232,563,260],{"emptyLinePlaceholder":259},[232,565,566,568,570,572,574,576,578,580,582],{"class":234,"line":263},[232,567,266],{"class":242},[232,569,270],{"class":269},[232,571,273],{"class":242},[232,573,276],{"class":238},[232,575,279],{"class":242},[232,577,283],{"class":282},[232,579,286],{"class":242},[232,581,289],{"class":238},[232,583,292],{"class":242},[232,585,586,589,591,593],{"class":234,"line":295},[232,587,588],{"class":269},"  deleteCookie",[232,590,301],{"class":242},[232,592,304],{"class":249},[232,594,496],{"class":242},[232,596,597,599,601],{"class":234,"line":339},[232,598,342],{"class":238},[232,600,345],{"class":249},[232,602,253],{"class":242},[232,604,605],{"class":234,"line":350},[232,606,353],{"class":242},[185,608,609,610,612,613,615,616,619,620,622,623,626],{},"The utility ",[195,611,209],{}," is a wrapper around ",[195,614,197],{}," with the value set to ",[195,617,618],{},"\"\""," and the ",[195,621,371],{}," set to ",[195,624,625],{},"0",".",[185,628,629],{},"This will erase the cookie from the client.",[631,632,633],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":228,"searchDepth":256,"depth":256,"links":635},[636,637,638],{"id":214,"depth":256,"text":215},{"id":426,"depth":256,"text":427},{"id":535,"depth":256,"text":536},"Use cookies to store data on the client.","md",{"icon":139},{"icon":139},{"title":136,"description":639},"9SZul7GE8QZVh6lk373BoevG8xDhZ17SlUp_VLyEf7s",[646,648],{"title":129,"path":130,"stem":131,"description":647,"icon":134,"children":-1},"Common examples for h3.",{"title":141,"path":142,"stem":143,"description":649,"icon":139,"children":-1},"Remember your users using a session.",1750976021835]