1.6.4 - A Python library for managing user sessions with password protection, expiration, and persistent storage. Ideal for web applications and CLI tools. Supports session locking, unlocking, and time-based expiration. Compatible with Flask and Django. Includes a command-line interface for easy session management. Features include session creation, deletion, listing, and restoration. Provides secure session handling with hashing and encryption.
Project description
# Session Manager
Een krachtige en uitbreidbare Python-module voor het beheren, beveiligen en opslaan van sessies in JSON, CSV, SQLite of PostgreSQL formaten. Ideaal voor toepassingen die tijdelijke of beveiligde gebruikerssessies vereisen.
---
## 📦 Inhoud
- [Beschrijving](#beschrijving)
- [Installatie](#installatie)
- [Gebruik](#gebruik)
- [SessionManager](#sessionmanager)
- [SessionStoring](#sessionstoring)
- [Bestandsopslag](#bestandsopslag)
- [Voorbeelden](#voorbeelden)
- [Structuur van een sessie](#structuur-van-een-sessie)
- [Berichten en logging](#berichten-en-logging)
- [Extensies](#extensies)
---
## 📘 Beschrijving
De `SessionManager` beheert gebruikerssessies met functies zoals:
- Automatisch verlopen van sessies
- Wachtwoordbeveiligde sessies
- Exporteren en importeren naar JSON, CSV, SQLite of PostgreSQL
- Sessies ontgrendelen / vergrendelen
- Logging van fouten en successen
De `SessionStoring` klasse biedt methodes om sessies op te slaan of te laden in diverse formaten.
---
## 🛠️ Installatie
Installeer afhankelijkheden met pip:
```bash
pip install psycopg2
Zorg ervoor dat de volgende modules beschikbaar zijn in je project:
-
pysessionmanager.codesvoorSessionMessages -
security.pymet:generate_session_id()hash_password()verify_password()
-
utils.pymet:get_default_unick_name()
🚀 Gebruik
✨ SessionManager
manager = SessionManager("my_app", protect=True, auto_renew=True)
➕ Sessie aanmaken
session_id = manager.create(
unick_name="user1",
duration_seconds=3600,
value="some data",
password="secure123"
)
🔐 Vergrendelen / Ontgrendelen
manager.lock(session_id, "newpassword")
manager.unlock("user1", "newpassword")
🔎 Ophalen
session_data = manager.get(session_id)
🧼 Opruimen van verlopen sessies
active, removed, protected = manager.get_all()
💾 SessionStoring
store = SessionStoring()
store.store_sessions_json(manager.sessions, "backup.json")
loaded = store.load_sessions_csv("sessions.csv")
🗃️ Bestandsopslag
JSON
store.store_sessions_json(manager.sessions, "data.json")
CSV
store.store_sessions_csv(manager.sessions, "data.csv")
SQLite
store.store_sessions_sqlite("sessions.db", manager.sessions)
PostgreSQL
store.store_sessions_postgresql(sessions=manager.sessions, conn_string="dbname=test user=postgres")
✅ Structuur van een sessie
{
"session_id_123": {
"unick_name": "john_doe",
"start_time": "2025-06-12T12:00:00",
"end_time": "2025-06-12T13:00:00",
"protected": true,
"password": "<hashed_password>",
"value": "extra data"
}
}
🔔 Berichten en logging
De module gebruikt SessionMessages voor gestandaardiseerde fout- en succesmeldingen, en logging om informatie te loggen.
Voorbeeld logstructuur:
manager.logs = {
"errors": ["Fout bij sessie"],
"successful": ["Sessie succesvol aangemaakt"],
"debug": ["IS_ACTIVE -- session_id"]
}
📚 Voorbeelden
1. Sessie aanmaken zonder wachtwoord
manager = SessionManager("test_app")
session_id = manager.create(unick_name="anon")
2. Beschermde sessie aanmaken
manager = SessionManager("secure_app", protect=True)
session_id = manager.create(unick_name="admin", password="supersecret")
3. Sessie ophalen op basis van naam
session_id = manager.get_with_unick_name("admin")
4. Gegevens van sessie ophalen
value = manager.get_value(session_id)
5. Tijd over of verstreken
remaining = manager.get_time_remaining(session_id)
elapsed = manager.time_passed(session_id)
🧩 Extensies
- Implementeer opslag in MongoDB of Redis
- Voeg API-integratie toe (bv. via Flask)
- Voeg auditlogs toe voor sessiebeheer
- Ondersteuning voor sessiehernieuwing (auto-renewal)
🧾 Licentie
MIT License © 2025 – Ontwikkeld door [Ahmad Al Dibo]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pysessionmanager-0.2.1-py3-none-any.whl.
File metadata
- Download URL: pysessionmanager-0.2.1-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9610010e115734a144998157d9cc5d8c4ba0fcd484af668a8ca206f9e0f9be2b
|
|
| MD5 |
3e1fb03e56321430e0238e790c842d7d
|
|
| BLAKE2b-256 |
e3be422aa482d8bae9595c97d677b294180cf9b84c491e4ca115a7c8fdb389fd
|