From ce49785c7921b1fcc433bfe9a14062ec88984274 Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 19 Jan 2026 15:17:43 +0100 Subject: [PATCH] feat : ajout de l'authentification avec lexik --- .env | 7 + .gitignore | 5 + .idea/data_source_mapping.xml | 6 + .idea/ferme.iml | 3 + .idea/php.xml | 2 + .idea/workspace.xml | 69 ++++--- README.md | 37 +++- composer.json | 1 + composer.lock | 191 +++++++++++++++++- config/bundles.php | 26 ++- config/packages/lexik_jwt_authentication.yaml | 20 ++ config/packages/nelmio_cors.yaml | 1 + config/packages/prod/api_platform.yaml | 4 + config/packages/security.yaml | 36 +++- config/reference.php | 96 +++++++++ config/routes/security.yaml | 4 + frontend/composables/useApi.ts | 9 +- frontend/i18n/locales/fr.json | 9 + frontend/layouts/auth.vue | 7 + frontend/layouts/default.vue | 20 +- frontend/middleware/auth.global.ts | 17 ++ frontend/pages/login.vue | 95 +++++++++ frontend/services/auth.ts | 38 ++++ frontend/services/dto/user-data.ts | 3 + frontend/stores/auth.ts | 58 ++++++ makefile | 9 +- migrations/Version20260112000700.php | 27 +++ migrations/Version20260112000800.php | 30 +++ src/Entity/Reception.php | 1 + src/Entity/User.php | 104 ++++++++++ src/Entity/Weight.php | 1 + src/State/MeProvider.php | 27 +++ symfony.lock | 12 ++ 33 files changed, 932 insertions(+), 43 deletions(-) create mode 100644 .idea/data_source_mapping.xml create mode 100644 config/packages/lexik_jwt_authentication.yaml create mode 100644 config/packages/prod/api_platform.yaml create mode 100644 frontend/layouts/auth.vue create mode 100644 frontend/middleware/auth.global.ts create mode 100644 frontend/pages/login.vue create mode 100644 frontend/services/auth.ts create mode 100644 frontend/services/dto/user-data.ts create mode 100644 frontend/stores/auth.ts create mode 100644 migrations/Version20260112000700.php create mode 100644 migrations/Version20260112000800.php create mode 100644 src/Entity/User.php create mode 100644 src/State/MeProvider.php diff --git a/.env b/.env index 5fa872c..fe26c23 100644 --- a/.env +++ b/.env @@ -39,3 +39,10 @@ DEFAULT_URI=http://localhost ###> nelmio/cors-bundle ### CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$' ###< nelmio/cors-bundle ### + +###> lexik/jwt-authentication-bundle ### +JWT_SECRET_KEY= +JWT_PUBLIC_KEY= +JWT_PASSPHRASE= +COOKIE_SECURE=1 +###< lexik/jwt-authentication-bundle ### diff --git a/.gitignore b/.gitignore index 075a0c2..1bfdaec 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ /var/ /vendor/ /LOG/ +/config/jwt/*.pem ###< symfony/framework-bundle ### ###> friendsofphp/php-cs-fixer ### @@ -23,3 +24,7 @@ ###> docker ### docker/.env.docker.local ###< docker ### + +###> lexik/jwt-authentication-bundle ### +/config/jwt/*.pem +###< lexik/jwt-authentication-bundle ### diff --git a/.idea/data_source_mapping.xml b/.idea/data_source_mapping.xml new file mode 100644 index 0000000..9036044 --- /dev/null +++ b/.idea/data_source_mapping.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/ferme.iml b/.idea/ferme.iml index 07b2241..5003136 100644 --- a/.idea/ferme.iml +++ b/.idea/ferme.iml @@ -145,6 +145,9 @@ + + + diff --git a/.idea/php.xml b/.idea/php.xml index 59aea42..c3e6f97 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -151,6 +151,8 @@ + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 15a4e64..cf980aa 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,12 +5,26 @@ + + + + + + + + + + - - - - + + + + + + + + { @@ -207,28 +223,31 @@ - { - "keyToString": { - "RunOnceActivity.MCP Project settings loaded": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", - "RunOnceActivity.git.unshallow": "true", - "RunOnceActivity.typescript.service.memoryLimit.init": "true", - "git-widget-placeholder": "feat/reception-generation-bon", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "settings.editor.selected.configurable": "reference.webide.settings.project.settings.php.debug", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -389,4 +408,8 @@ + + +