feat(session): add session middleware with Redis storage support

- Implemented SessionMiddleware with cookie-based session key management
- Added support for encrypted and signed session cookies
- Integrated Redis backend for session state persistence
- Implemented session lifecycle management (create, update, delete)
- Added TTL extension policies for session timeout handling
- Created fluent builder for session middleware configuration
- Implemented cookie security features (secure, http-only, same-site)
- Added session state loading and persistence logic
- Implemented proper error handling and logging for session operations
- Added support for configurable session cookie parameters
- Implemented session key extraction and validation from requests
This commit is contained in:
zhenyi
2026-06-07 17:42:27 +08:00
parent 4e2c1c932a
commit 2bb5834167
2 changed files with 507 additions and 3 deletions
+1 -3
View File
@@ -21,9 +21,7 @@ impl SessionStore for RedisSessionStore {
let mut conn = self.redis.get_connection()?;
let value: Option<String> = redis::cmd("GET")
.arg(session_key.as_ref())
.query(&mut *conn.inner_mut())
.ok()
.flatten();
.query(&mut *conn.inner_mut())?;
match value {
None => Ok(None),