Laravel 5

Error 302 ?? Callback ??

  • Avatar de MaxenceO
    Membre depuis :
    28/08/2019
    Messages :
    3

    Bonjour à tous,

    Quelques détails de mon projet :

    Je travailles actuellement sur Laravel5, sur mon propre serveur apache2 sous debian9.
    C'est une plateforme pour les IOT qui utilise le réseau SIGFOX.

    Mon site est en ligne, sur le backend de SIGFOX j'ai créer un callback :

    J'ai crée deux routes :

    Route::get('/callback','TestSigfox@getreceptionCallback');
    Route::post('/callback', 'TestSigfox@receptionCallback');

    Dans mon controllers TestSigfox,ma function receptionCallback :

    Pour l'instant, je n'ai rien car je ne sais pas justement quoi faire.

    Sur le backend de Sigfox mon callback est en rouge et me retourne :

    [OK] - Base station A561 - < 1 second
    302 - Found - #1
    POST http://didomax.pro/callback HTTP/1.0
    content-length : 142
    accept-encoding : gzip,deflate
    accept-language : fr
    host : didomax.pro
    user-agent : SIGFOX
    accept-charset : UTF-8;q=0.9,*;q=0.7
    content-type : application/json

    {
    "device" : "1D99B4",
    "temperature" : "2753",
    "humidity" : "69",
    "Sound" : "29",
    "Temperature": "29",
    "time": 1567002049
    }

    Donc j'ai une erreur 302, mais impossible de comprendre ce que sait.
    Du côté de mon serveur, les log me retourne :

    185.110.97.11 - - [28/Aug/2019:16:20:50 +0200] "POST http://didomax.pro/callback HTTP/1.1" 302 911 "-" "SIGFOX"

    Je prends en main Laravel depuis peu, et je n'ai jamais encore utiliser des callback !
    Si quelqu'un peu m'aider là dessus ça serais géniale :)

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2524

    Bonjour,

    Si tu envoies du POST sans token CSRF tu as forcément une erreur 302.

  • Avatar de Dom
    Membre depuis :
    17/07/2017
    Messages :
    20

    Comme il peut être difficile de rajouter ce CSRF du coté de ton device, je pense que tu devrais regarder de ce coté là :

    https://laravel.com/docs/5.7/csrf#csrf-excluding-uris

    Afin d'exclure cette url.

  • Avatar de MaxenceO
    Membre depuis :
    28/08/2019
    Messages :
    3

    Bonjour,

    Lorsque, dans le middleware je n'ai pas rajouter les urls a exclure, ça me retourne une erreur 419.

    Lors que je mets dans :

    protected $except = [
    'http://didomax.pro/callback',
    'http://didomax.pro/callback/*',
    ];

    J'ai l'erreur 302.

    On m'a dit ceci : "302 n'est pas une erreur c'est le code HTTP d'une redirection non permanente, que tu as probablement codée toi-même dans ton contrôleur ?"

    Dans mon contrôleur il n'y a pour le moment rien.

  • Avatar de Dom
    Membre depuis :
    17/07/2017
    Messages :
    20

    Tu peux mettre ici ton fichier de route ?
    J'ai l'impression que c'est un problème d'authorisation car quand j'essai d'aller sur l'url j'ai une 302 vers login.

  • Avatar de MaxenceO
    Membre depuis :
    28/08/2019
    Messages :
    3

    Alors, en faites vue qu'il y a une connexion on avait mis les routes dans le middleware.
    Du coup, ça faisais une redirection 302 vers le login vue qu'il n'est pas connecter. ( On travaillait sur le site en connecter donc on avait pas remarqué )

    On a sorti les routes du middleware, le callback vert HTTP 200. On peut récupérer les données et les enregistrer dans la base de données.
    Mais du coup, est ce que c'est sécurisé ? Si non, comment faire ? :)

    Mais c'est une erreur tellement bête, où j'ai perdu 1 journée et demi dessus.

Vous ne pouvez pas répondre à ce sujet.