Skip to content

refactor(auth): scope MCDI auth strictly to web staff and handle OAuth errors - #86

Merged
ademboukabes merged 2 commits into
developfrom
feat/mcdi-auth
Nov 4, 2026
Merged

ademboukabes merged 2 commits into
developfrom
feat/mcdi-auth

Conversation

@ademboukabes

Copy link
Copy Markdown
Collaborator

Résumé des changements

  1. Restriction de MCDI/MCID au Web :

    • Suppression des endpoints et schémas mobiles liés à MCDI (/user/auth/mcdi/exchange, McdiExchangeRequest).
    • Nettoyage des références mcdi_token et _validate_mcdi_session dans la couche mobile (token_auth.py, session.py, users.py).
    • Suppression de MCDI_REDIRECT_URI_MOBILE dans la configuration et les .env.example.
  2. Callback Web & Normalisation :

    • Normalisation systématique des emails (strip().lower()) pour la correspondance avec staff_users.
    • Gestion robuste des erreurs OAuth dans le callback web (Annotated[str | None, Query()] = None) avec redirection vers /auth/login?error=... sans erreur 422.
  3. Tests & Qualité :

    • Suite de tests unitaires MCDI adaptée (test_mcdi_auth.py, 11/11 tests au vert).
    • Linting Ruff et typage Mypy validés (163 fichiers, 0 erreur).

- Handle optional error and error_description query params in mcdi_callback
- Normalize email to lowercase before querying staff_users table
- Prevent 422 Unprocessable Entity when OAuth error occurs without code
…e auth

- Correct default MCDI_BASE_URL to https://mcid.microclub.info/api
- Remove mobile MCDI exchange endpoint and request schema
- Remove MCDI token validation from mobile session cache and token_auth dependency
- Remove MCDI_REDIRECT_URI_MOBILE from configuration
- Update unit tests to reflect web-only MCDI authentication suite
@ademboukabes
ademboukabes merged commit 72fe674 into develop Nov 4, 2026
2 checks passed
@ademboukabes
ademboukabes deleted the feat/mcdi-auth branch November 4, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant