接口 SessionIdStorageStrategy<Data, FlashData>

SessionIdStorageStrategy 旨在允许任何人使用 createSessionStorage(strategy) 轻松构建自己的 SessionStorage。

此策略描述了一个常见场景,其中会话 ID 存储在 Cookie 中,但实际会话数据存储在其他位置,通常在数据库或磁盘上。提供了一组创建、读取、更新和删除操作来管理会话数据。

interface SessionIdStorageStrategy<Data, FlashData> {
    cookie?: Cookie | CookieParseOptions & CookieSerializeOptions & CookieSignatureOptions & {
        name?: string;
    };
    createData: ((data: Partial<Data & {
        [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
    }>, expires?: Date) => Promise<string>);
    deleteData: ((id: string) => Promise<void>);
    readData: ((id: string) => Promise<null | Partial<Data & {
        [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
    }>>);
    updateData: ((id: string, data: Partial<Data & {
        [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
    }>, expires?: Date) => Promise<void>);
}

类型参数

属性

cookie?: Cookie | CookieParseOptions & CookieSerializeOptions & CookieSignatureOptions & {
    name?: string;
}

用于存储会话 ID 的 Cookie,或用于自动创建一个 Cookie 的选项。

createData: ((data: Partial<Data & {
    [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
}>, expires?: Date) => Promise<string>)

使用给定数据创建新记录并返回会话 ID。

deleteData: ((id: string) => Promise<void>)

从数据存储中删除给定会话 ID 的数据。

readData: ((id: string) => Promise<null | Partial<Data & {
    [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
}>>)

返回给定会话 ID 的数据,如果没有则返回 null

updateData: ((id: string, data: Partial<Data & {
    [Key in string | number | symbol as `__flash_${Key & string}__`]: FlashData[Key]
}>, expires?: Date) => Promise<void>)

更新给定会话 ID 的数据。