UNPKG

@mt-kit/utils

Version:
62 lines (61 loc) 2.3 kB
interface ICookieOptions { /** * Cookie 的过期时间(单位:秒) */ expires?: number; /** * Cookie 的域 */ domain?: string; /** * Cookie 的路径 */ path?: string; /** * 是否仅在使用 SSL(也就是 https) 连接时发送 Cookie */ secure?: boolean; /** * 控制 Cookie 的跨站点请求行为 * * Strict: 在同站点情况下才发送 Cookie,即只有当请求来自于当前站点时,浏览器才会发送 Cookie。这是最为严格的设置,减少了跨站点请求伪造(CSRF)的风险。 * * Lax: 在导航到目标站点的顶级导航时(例如通过点击链接或者通过 GET 表单提交),会发送 Cookie。在同站点的 POST 请求中,也会发送 Cookie。这是默认值,提供了一定程度的安全性,同时允许一些导航的场景。 * * None: 总是发送 Cookie,无论是同站点还是跨站点请求。这通常在需要使用跨站点请求的场景下使用,但需要注意安全性问题。使用 None 的同时,还需要将 Secure 属性设置为 true,表示只有在通过 HTTPS 安全连接传输时才发送 Cookie。 * * 注: * ① 存储关键信息的 Cookie,sameSite 属性不能为 None; * ② sameSite 为 None === sameSite 不传,默认是啥也不传的。 */ sameSite?: "Strict" | "Lax" | "None"; } /** * 封装 Cookie 操作的工具类 * * 端口、协议不同,不影响 Cookie * * */ declare const cookieHelper: { /** * 设置 Cookie * @param {string} name - Cookie 的名称 * @param {string} value - Cookie 的值 * @param {CookieOptions} options - Cookie 的选项 */ setCookie(name: string, value: string, options?: ICookieOptions): void; /** * 获取 Cookie 的值 * @param {string} name - Cookie 的名称 * @returns {string|null} Cookie 的值,如果不存在则返回 null */ getCookie(name: string): string | null; /** * 删除 Cookie * @param {string} name - Cookie 的名称 * @param {CookieOptions} options - Cookie 的路径(一版不需要) */ deleteCookie(name: string, options?: ICookieOptions): void; }; export default cookieHelper;