Recipe: Cookie sessions
open Suave
open Suave.Filters
open Suave.Operators
open Suave.Successful
open Suave.State.CookieStateStore
open Suave.Cookie
let app =
statefulForSession >=> choose [
path "/set" >=> context (fun ctx ->
match HttpContext.state ctx with
| None -> RequestErrors.BAD_REQUEST "no store"
| Some store -> store.set "visits" 1 >=> OK "set")
path "/get" >=> context (fun ctx ->
match HttpContext.state ctx with
| Some store ->
match store.get "visits" with
| Some n -> OK (string (n : int))
| None -> OK "0"
| None -> OK "0")
]
startWebServer defaultConfig appConfigure a strong serverKey in production. Guide: Sessions.