繁体   English   中英

FSharp Suave - 如何在响应中设置 cookies?

[英]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 的securehttpOnly标志。 如果你想这样做,我认为你可以像这样手动进行:

statefulForSession
  >=> Suave.Cookie.setCookie (
    HttpCookie.create "sessionId" someLoginLogic None None None true true None)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM