Freebox Server (Pop V8/ Delta V7 / Revolution V6 / Server Mini 4K)

  • Status Nouveau
  • Percent Complete
    0%
  • Task Type Anomalie
  • Category Freebox OS → API
  • Assigned To No-one
  • Operating System Tous
  • Severity Medium
  • Priority Very Low
  • Reported Version 3.1.3
  • Due in Version Undecided
  • Due Date Undecided
  • Votes 1
  • Private

FS#18137 - invalid_token sur /api/v3/login/session

lorsque je tente d’ouvrir une session sur l’API du Freebox Server, j’obtiens une erreur HTTP 403 avec le contenu suivant :

{”uid”:”d1e29ec02243f6f8e4fc55c4527e15b3”,”success”:false,”msg”:”Erreur d’authentification de l’application”,”result”:{”password_salt”:”“,”challenge”:”“},”error_code”:”invalid_token”} l’application est pourtant bien autorisée (via l’API authorize)
et je récupère bien l’app_token :
{”success”:true,”result”:{”app_token”:”aaaaaaaaaaaaaaaaaaaaaaaa”,”track_id”:1}}
ainsi que le challenge :
{”success”:true,”result”:{”status”:”granted”,”challenge”:”cccccccccccccccccccccc”,”password_salt”:”
***”}}

la requête de session est conforme à la documentation :
POST
{”app_id”:”fr.freebox.aem”,”app_version”:”1.0”,”password”:”XXXXXXXXXXXXXXXXXXX”}

password est calculé par la commande suivante :
echo -n <challenge> | openssl dgst -sha1 -hmac <app_token>

pareil en 3.1.4

Après 3h de galère sur le sujet, j'ai réussi à obtenir mes sessions correctement en décochant / enregistrant / cochant / enregistrant l'option "Paramètres de la freebox" > "avancé" > "Gestion des accès" > "Paramètres" > "Applications".

Puis, attendre quelques secondes et lancer l'enregistrement de l'application. Les sessions sont ensuite correctement créées.

//bit.ly/1TZq2wx

Bon j'ai parlé trop vite... ça marche plus :(

Le résultat est en fait très aléatoire. En relançant plusieurs fois la procédure d'obtention de session parfois ça marche, mais parfois seulement. La plus part du temps, ça échoue.

Gre commented on 02.03.2016 14:59

J'arrive un peu tard mais si ca peut aider quelqu'un,
j'ai rencontre le même probleme. Je ne sais pour quelle raison, mais c# me rajoute un \ devant un / dans le challenge et le session_token. (j'imagine que dans l'app_token aussi, mais le cas ne s'est pas presente pour moi)
Ca peut expliquer le cote aleatoire.
un simple challenge.Replace("\\", ""); et le tour est joué

j'ai vu aussi sur 19548 qu'il y en a qui ont un pb avec les +

Pour ma part, c'est résolu sur ce problème : au lieu de lancer mes requêtes une par une manuellement dans un terminal, je les ai embarquées dans un script .sh ;
visiblement il faut que la demande de session soit quasi immédiate après la récupération du challenge ou que les 2 requêtes soient lancées par un meme process (?)
surprenant, mais bon... çà marche :D

Gre commented on 24.02.2021 11:10

petit retour quelques années plus tard, mais ca pourra peut être servir a d'autre
En utilisant un serializer json plutot que de le construire a la main, je n'ai plus de problèmes avec les + et les /

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing