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

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Anomalie
  • Catégorie Freebox OS → API
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Moyenne
  • Priorité Très Basse
  • Basée sur la version 3.1.3
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes 1
  • Privée

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 a commenté le 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 a commenté le 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 /

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche