Как мне установить cookie с помощью Scotty / wai?

Я просмотрел документацию Scotty, но вижу только возможность установить заголовок HTTP, который кажется немного низким уровнем.

Есть ли более элегантный способ добиться этого? Сторонние библиотеки?

Из того, что я могу найти, решение было бы использовать mapHeader от Network.Wai.Util, Но, как уже упоминалось, это кажется довольно низким уровнем.

Также есть cookie пакет, но, похоже, он возвращает полностью отображенную "строку" cookie, а не может получить ключ / значение.

Существует также: https://hackage.haskell.org/package/HTTP-4000.3.9/docs/Network-HTTP-Cookie.html но, похоже, нет параметра Expiry?

1 ответ

Решение

https://hackage.haskell.org/package/scotty-cookie-0.1.0.3/docs/Web-Scotty-Cookie.html https://hackage.haskell.org/package/cookie-0.4.3/docs/Web-Cookie.html

import Web.Cookie
import Web.Scotty.Cookie

setCookie $ defaultSetCookie { setCookieName = "example", setCookieValue = "cookieValue" }

Функция на самом деле удивительно проста:

setCookie :: (Monad m, ScottyError e)
          => SetCookie
          -> ActionT e m ()
setCookie c = addHeader "Set-Cookie" (TL.decodeUtf8 . toLazyByteString $ renderSetCookie c)
Другие вопросы по тегам