Bonjour,

Je souhaite mettre en place une api REST afin de servire des données à une application frontend.
L'application frontend est sous angularjs et idéalement je souhaiterai ne pas la servir via laravel.
Ma question est la, commment puis-je faire le lien entre l'application sous laravel et l'application angular.

Comment puis-je gerer le 'CSRF' notement?

Merci d'avance pour vos réponses.

5 réponses


Azorgh
Réponse acceptée

Hello,

Concernant la protection CSRF, une "astuce" consiste en faite a générer le token via un index.blade.php (qui sera au final l'index de ton appli) et de l'utiliser dans tes requêtes. Je te laisse voir ici pour voir comment on peut faire :

http://laravelsnippets.com/snippets/angularjs-with-laravel

MacFly
Auteur

J'ai exploré cette option qui est intéressante dans la mesure ou les templates servis sont mis en cache.
Je souhaite rendre le systeme modulaire en dissociant totalement le frontend du backend.
Merci pour la piste PallMallShow ;)

Pourquoi pas alors (je sais pas si ça peut fonctionner) faire une endpoint REST qui te retourne un token CSRF ?
(Un appel en POST avec une clé crypté généré a la volée par exemple pour vérifier que la clé est bonne ?).
Puis ensuite tu stock le token quelque part pour le réutiliser à chaque fois dans les requetes.

Je sais pas si tu vois ou je veux en venir ! ^^

Au cas où... Slim PHP (du moins dans sa prochaine nouvelle version) intègre un générateur de CSRF, sobrement nommé : slim/csrf

Voir :

MacFly
Auteur

@pallMallShow
Si je vois assez la chose.

Vos suggestions vont agrémenter ma reflexion car je creuse sans trop savoir ou je vais la ;) merci pour vos idées en tous cas.
Ce sujet pourrait bien servir à d'autres car c'est assez intéressant.

@mzkd
Slim est une bonne idée aussi mais je suis habitué à laravel au final et je suis resté sur le couple Laravel Lumen pour prototyper mes backends.

Merci a vous en tous cas ;)