Bonjour,
J'ai une application Synfony 3. Au sein de cette application il y a certaines routes qui doivent être conçues pour être appelées exclusivement via AJAX. C'est-à-dire qu'un script JS doit envoyer du JSON via AJAX, et récupère aussi du JSON en retour.
Le truc c'est que le code JS qui envoie la requête AJAX peut avoir été écrit par l'utilisateur, i.e. je voudrais donner la possibilité à l'utilisateur d'écrire une espèce d'app pour le site. Un peu comme on peut écrire une app facebook à l'intérieur des pages de facebook, sauf que le code du JS est quand même obligatoirement hébergé chez moi (je ne veux pas que le code JS de l'utilisateur soit / puisse être stocké ailleurs). Il aura bien sûr un moyen d'upload pour balancer son script.
Première question, basique: puis-je récupérer du JSON brut avec l'objet Request de Symfony ? et en passant par le système de formulaire/validation (pour en profiter) est-ce que c'est aussi possible ? Si non, existe-t-il un autre moyen de valider les données envoyées facilement ?
Deuxième question: est-ce que je peux être certain à 100% que les cookies et notamment l'ID de session est envoyé automatiquement quand on fait une requête AJAX ? ET le referer ? ON reste dans le même domaine. Si non alors il faudra que je généralise le point 3 ci-dessous à tous les cas.
Troisième question: je souhaiterais aussi que l'utilisateur puisse tester son script en local (depuis localhost) pour ne pas être obligé de l'uploader sur le site à chaque modification mineure. Pour ce cas il faut donc qu'il ait une API key je suppose, car il n'y aura pas d'ID de session ou de cookie pour l'identifier. Comment est-ce que je peux faire ? J'ai essayé de lire des trucs sur OAuth mais ça n'a pas l'air si simple, et me semble-t-il beaucoup trop complexe pour ce que je veux faire. IL faut quand même que ce soit suffisament secure pour qu'on 1/ne puisse pas voler trop facilement l'API key, et2/que l'utilisateur ne puisse appeler mon API que depuis une page précise de mon site, ou alors depuis localhost pour ses tests; mais surtout pas depuis un quelconque autre site web. J'ai évidemment pensé au referer pour cette dernière vérification mais c'est facilement falsifiable, peut-on faire mieux ?
Pour ne rien vous cacher, c'est pour un jeu. Dans ce cadre il faut absolument que l'utilisateur soit obligé de passer par mon site (sauf pour les tests en localhost). En aucun cas il ne doit pouvoir faire appel à mes API depuis un autre site web (car sinon 1/c'est facile de tricher et 2/plus personne ne viendra chez moi)
Merci pour votre aide.