You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

F# Suave框架如何在接口响应中设置带HttpOnly、Secure属性的Cookie

解决方案

你可以通过Suave内置的Cookie模块快速实现带安全标记的Cookie写入,修改步骤如下:

1. 引入依赖命名空间

在代码开头的open引用块中新增Cookie模块引入:

open Suave.Cookie

2. 调整/login接口的处理逻辑

构造Cookie时开启安全属性后写入响应即可,完整的接口实现代码如下:

path "/login" >=> 
    request (fun ctx -> 
        // 执行你自己的登录逻辑生成sessionId
        let sessionId = someLoginLogic
        // 构造带安全标记的Cookie对象
        let sessionCookie = 
            Cookie.create "session_id" sessionId
            |> Cookie.withHttpOnly true // 开启HttpOnly,禁止前端JS读取,防范XSS
            |> Cookie.withSecure true // 开启Secure,仅HTTPS场景下传输Cookie
            |> Cookie.withPath "/" // 配置Cookie生效路径为全站
            // 可选配置:加上则为持久Cookie,不加则为会话Cookie,关闭浏览器自动失效
            |> Cookie.withExpiry (DateTime.UtcNow.AddDays(7.))
        // 将Cookie写入响应后返回登录结果
        setCookie sessionCookie >=> OK "登录成功"
    )

注意事项

你当前配置的服务绑定的是HTTP协议,Secure标记的Cookie仅会在HTTPS请求下被浏览器携带,本地HTTP测试时可以临时把withSecure的参数改为false,生产环境部署HTTPS后再开启即可。如果需要调整Cookie的作用域名、同站点策略等属性,还可以继续链式调用Cookie.withDomain、Cookie.withSameSite等方法配置。


内容的提问来源于stack exchange,提问作者Amar Pawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:36:03