- État Nouveau
- Type de tâche Anomalie
- Catégorie Freebox OS → API
- Assignée à Personne
- Système d'exploitation Tous
- Sévérité Moyenne
- Priorité Normale
- Basée sur la version 3.1.3
- Due pour la version Non décidé
- Date d'échéance Non décidé
-
Votes
1
- Mickaël Perrin (Mickaël P.) (20/08/2015)
- Privée Non
Ouverte par Ahmed (chebahmed) - 26/07/2015
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>
vendredi 7 août, 2015 12:21:15
pareil en 3.1.4
jeudi 20 août, 2015 13:28:59
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
jeudi 20 août, 2015 13:38:57
Bon j'ai parlé trop vite... ça marche plus :(
jeudi 20 août, 2015 14:27:15
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.
mercredi 2 mars, 2016 14:59:34
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 +
mardi 8 novembre, 2016 19:42:34
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
mercredi 24 février, 2021 11:10:59
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 /