First commit
This commit is contained in:
26
src/app/graphql/context.py
Normal file
26
src/app/graphql/context.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from fastapi import Request
|
||||
from typing import Any, Dict, Optional
|
||||
from app.repositories import fake_db_repo
|
||||
from app.models.usermodel import UserModel
|
||||
|
||||
|
||||
async def get_context(request: Request) -> Dict[str, Any]:
|
||||
"""
|
||||
Crée le contexte pour chaque requête GraphQL.
|
||||
|
||||
C'est ici que nous gérons l'authentification (AuthN).
|
||||
Nous lisons l'en-tête HTTP Authorization, validons le "token" (simulé ici),
|
||||
et injectons 'current_user' dans le contexte.
|
||||
"""
|
||||
current_user: Optional[UserModel] = None
|
||||
|
||||
# TODO 1.1: Implémenter l'authentification (AuthN)
|
||||
# 1. Lire l'en-tête `Authorization` (request.headers.get(...))
|
||||
# 2. Simuler la validation du token (admin, alice, bob)
|
||||
# 3. Récupérer l'utilisateur depuis `fake_db_repo`
|
||||
# 4. Injecter l'utilisateur sous la clé "current_user"
|
||||
|
||||
return {
|
||||
"request": request,
|
||||
"current_user": current_user # Injecté pour tous les resolvers
|
||||
}
|
||||
Reference in New Issue
Block a user