# 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]
Metadata
Release files for pysessionmanager 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysessionmanager-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pysessionmanager-0.2.1-py3-none-any.whl
| Download URL | pysessionmanager-0.2.1-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9610010e115734a144998157d9cc5d8c4ba0fcd484af668a8ca206f9e0f9be2b
|
|
BLAKE2b-256 checksum How to use checksums |
e3be422aa482d8bae9595c97d677b294180cf9b84c491e4ca115a7c8fdb389fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.4
|