NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
http_session结构体 参考

HTTP会话结构 更多...

#include <http_session.hpp>

类 http_session 继承关系图:
[图例]

Public 成员函数

NEFORCE_NODISCARD stringoperator[] (const string &key)
 下标操作符
NEFORCE_NODISCARD string_view get (const string &key) const
 获取值
void set (const string &key, string value)
 设置值
bool remove (const string &key)
 删除键值对
void clear ()
 清空所有会话数据
NEFORCE_NODISCARD bool contains (const string &key) const noexcept
 检查是否包含键
void invalidate () noexcept
 无效化会话
void touch () noexcept
 更新最后访问时间
NEFORCE_NODISCARD bool is_valid () const noexcept
 检查会话是否有效
NEFORCE_NODISCARD bool expired (seconds max_inactive=0_s) const noexcept
 检查会话是否已过期
NEFORCE_NODISCARD seconds age () const noexcept
 获取会话年龄
NEFORCE_NODISCARD seconds idle_time () const noexcept
 获取空闲时间
NEFORCE_NODISCARD string to_string () const
 序列化为字符串
Public 成员函数 继承自 istringify< http_session >
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string to_string () const
 转换为字符串

Public 属性

string id
 会话唯一标识符
unordered_map< string, stringdata
 会话数据存储
datetime last_access {datetime::now()}
 最后访问时间
datetime create_time {datetime::now()}
 创建时间
seconds max_age {1800}
 最大空闲时间,默认30分钟
bool is_new = true
 是否为新创建的会话
bool invalidated = false
 是否已无效化

详细描述

HTTP会话结构

表示一个服务器端HTTP会话,用于存储用户会话数据。 每个会话有唯一的ID,可以存储键值对数据。

使用示例:

// 创建新会话
http_session session;
session.id = generate_session_id();
session.max_age = 3600; // 1小时
// 存储用户数据
session["user_id"] = "12345";
session.set("username", "john_doe");
// 读取数据
if (session.contains("user_id")) {
string user_id = session.get("user_id");
}
// 更新访问时间
session.touch();
// 检查会话是否过期(30分钟无活动)
if (session.expired(1800)) {
session.invalidate();
}
// 会话无效化(登出)
session.invalidate();
HTTP会话结构
void invalidate() noexcept
无效化会话
NEFORCE_NODISCARD bool expired(seconds max_inactive=0_s) const noexcept
检查会话是否已过期
string id
会话唯一标识符
void set(const string &key, string value)
设置值
void touch() noexcept
更新最后访问时间
seconds max_age
最大空闲时间,默认30分钟
NEFORCE_NODISCARD bool contains(const string &key) const noexcept
检查是否包含键
NEFORCE_NODISCARD string_view get(const string &key) const
获取值

在文件 http_session.hpp161 行定义.

成员函数说明

◆ age()

NEFORCE_NODISCARD seconds http_session::age ( ) const
inlinenoexcept

获取会话年龄

返回
从创建到现在的秒数

在文件 http_session.hpp250 行定义.

引用了 age(), create_time , 以及 datetime::now().

被这些函数引用 age().

◆ contains()

NEFORCE_NODISCARD bool http_session::contains ( const string & key) const
noexcept

检查是否包含键

参数
key
返回
存在返回true

◆ expired()

NEFORCE_NODISCARD bool http_session::expired ( seconds max_inactive = 0_s) const
noexcept

检查会话是否已过期

参数
max_inactive最大无活动时间,0表示使用max_age
返回
已过期返回true

引用了 expired().

被这些函数引用 expired().

◆ get()

NEFORCE_NODISCARD string_view http_session::get ( const string & key) const

获取值

参数
key
返回
值的字符串视图,不存在返回空字符串

◆ idle_time()

NEFORCE_NODISCARD seconds http_session::idle_time ( ) const
inlinenoexcept

获取空闲时间

返回
从最后访问到现在的秒数

在文件 http_session.hpp256 行定义.

引用了 last_access , 以及 datetime::now().

◆ invalidate()

void http_session::invalidate ( )
noexcept

无效化会话

标记会话为无效,通常用于用户登出。 不会立即清除数据,但is_valid()会返回false。

◆ is_valid()

NEFORCE_NODISCARD bool http_session::is_valid ( ) const
noexcept

检查会话是否有效

返回
有效返回true

会话无效的条件:

  • 已调用invalidate()
  • 超过max_age无活动

引用了 is_valid().

被这些函数引用 is_valid().

◆ operator[]()

NEFORCE_NODISCARD string & http_session::operator[] ( const string & key)

下标操作符

参数
key
返回
值的引用

如果键不存在,会自动创建空字符串条目。 访问时会自动更新last_access。

◆ remove()

bool http_session::remove ( const string & key)

删除键值对

参数
key
返回
成功删除返回true

◆ set()

void http_session::set ( const string & key,
string value )

设置值

参数
key
value

◆ to_string()

NEFORCE_NODISCARD string http_session::to_string ( ) const

序列化为字符串

返回
会话信息的字符串表示

◆ touch()

void http_session::touch ( )
noexcept

更新最后访问时间

将last_access更新为当前时间,并将is_new设为false。 在每次请求处理时应调用此方法。

引用了 touch().

被这些函数引用 touch().


该结构体的文档由以下文件生成: