Bonjour la communauté !

Voilà quelques jours que je me casse la tête pour trouver la bonne méthode mais je n'arrive pas à me décider donc je me décide à faire appel à votre expérience :)

J'ai pour projet de développer un site de gestion de membres / cotisations / ... pour une (petite) association. Je souhaite utiliser React pour le front et Symfony 4 pour le back car ce sont les deux technologies que je maîtrise le mieux.

Ma question est la suivante : (1) dois-je démarrer un projet Symfony et y intégrer React, ou (2) dois-je démarrer un projet React et créer une API avec Symfony pour mon application ?

En effet si je part sur la première solution mon plus gros problème c'est que je ne vois pas comment gérer le routing de mon application (via React ou Symfony).

Si je part sur la seconde méthode, j'ai peur que mon application soit moins bien sécurisée (rapport à la gestion de l’authentification).

Voilà voilà j’espère profiter de vos lumières et merci d'avance :)

5 réponses


Defy
Réponse acceptée

le token servira a ton appel http. Il signera la requette pour garantir que la personne autorisé puisse y accéder. Le token sera stocker dans la session local client (par exemple) et seras utiliser a chaque requettes faite sur le server pour permetre a celui-ci d'accede a la ressource de l'api pour eviter qu'un bot puisse crawler l'url de ton api et recupéré les données.

Je partirais sur la solution 2, une api symfony et un front react, la securité seras garantie par ton API, si les routes de l'api sont sécurisé par un token barer ou autre ca ne pose pas de problème.

Pareil que Defy,

Tu peux tout à fait utiliser api platform avec une authentification via des token JWT coté symfony pour gérer l'API.

Merci pour vos réponse, je vais partir sur cette solution.

Concernant l'authentification, j'ai commancé à regarder du côté de JWT mais j'ai un peu de mal avec le principe ...
Je vais demander à mes utilisateurs de rentrer un email et un mot de passe côté front et transmettre le tout à Symfony mais du coups je ne vois pas bien à quoi me sert le token ...

Super merci beaucoup pour ta réponse :)