Как мне установить 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)