[英]FSharp Suave - How to set cookies in the response?
我在 Suave 中配置了一个简单的 HTTP 服务器,如下所示。
open System
open Suave
open Suave.Operators
open Suave.Filters
open Suave.Successful
[<EntryPoint>]
let main argv =
let httpPort = 9000
let httpConfig = {
defaultConfig with bindings = [ HttpBinding.createSimple HTTP "0.0.0.0" httpPort ]
}
let httpApp =
choose
[ POST >=> choose
[
path "/login" >=>
request (fun ctx ->
let sessionId = someLoginLogic
)
]
]
startWebServer httpConfig httpApp
在这里,我有一个登录端点,它将生成一个随机的 session id,我想在 cookies 中使用 HttpOnly 和 Secure 标志设置 session id
在 Suave 中设置 cookies 的典型方法是通过其 cookie state 存储,如此处所述:
statefulForSession
>=> setSessionValue "sessionId" someLoginLogic
但是,这并不能让您明确设置 cookie 的secure
和httpOnly
标志。 如果你想这样做,我认为你可以像这样手动进行:
statefulForSession
>=> Suave.Cookie.setCookie (
HttpCookie.create "sessionId" someLoginLogic None None None true true None)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.