Merci de la réponse! si je comprend bien le code, un peu comme dans GET_AVAILABLE_EQUIPEMENT
Une suggestion de piste aussi pour renforcer la sécurité serait de profiter du mécanisme de jeedom pour lutter contre le bruteforce du mot de passe qui bannit un utilisateur si trop de tentatives erronées. Pour cela, me semble-t-il il faudrait tester user::isBan() / user::failedLogin() je crois.
un truc du genre
if (user::isBan()) {
throw new Exception(__('Votre IP est bannie', __FILE__));
}
$user = user::connect($username, $password);
if (!is_object($user)) {
user::failedLogin(); // <-- C'est ici que votre code doit l'appeler !
sleep(5);
throw new Exception(__('Échec lors de l\'authentification', __FILE__));
}
Bon je crois que j’ai cassé qch avec ma config de reverse proxy,
L’app n’arrive plus à se connecter avec les traces suivantes:
Bizarre, l’app m’affiche une fenêtre pour choisir un équipement (alors que j’ai passé le qr code de l’equipement iphone) et ensuite ne va pas plus loin
0000|[2026-09-07 23:35:51] DEBUG [API] Request Received {"method":"CHECK_AUTHENT","params":{"login":"hlehoux","password":"****************","apiKey":"4b1****************"},"jsonrpc":"2.0","id":1788816951896}
0001|[2026-09-07 23:35:51] DEBUG [API] Send CHECK_AUTHENT -> {"type":"SET_AUTHENT","payload":{"userHash":"tbNaauZBCd******************************************************","userProfil":"admin"}}
0002|[2026-09-07 23:35:51] DEBUG [API] Request Received {"method":"CHECK_USER","params":{"userHash":"tbNaauZBCd******************************************************","apiKey":"4b1********************"},"jsonrpc":"2.0","id":1788816951967}
0003|[2026-09-07 23:35:51] DEBUG ClientIp => 176.165.102.228
0004|[2026-09-07 23:35:51] DEBUG network => external
0005|[2026-09-07 23:35:51] DEBUG localOnly => 0
0006|[2026-09-07 23:35:51] DEBUG [API] Send CHECK_USER -> {"type":"SET_CHECK_USER","payload":{"twoFactorAuthentificationRequired":false}}
0007|[2026-09-07 23:35:52] DEBUG [API] Request Received {"method":"GET_PLUGIN_CONFIG","params":{"userHash":"tbNaauZBCd******************************************************","apiKey":"4b*************"},"jsonrpc":"2.0","id":1788816952014}
0008|[2026-09-07 23:35:52] DEBUG [API] Send GET_PLUGIN_CONFIG -> {"type":"PLUGIN_CONFIG","payload":{"useWs":"1","polling":"0","httpUrl":"https:\/\/pail*************","internalHttpUrl":"http:\/\/192.168.100.6","wsAddress":"wss:\/\/pailly***********","internalWsAddress":"ws:\/\/192.168.100.6:8090","pluginJeedomVersion":"v1.21.0"}}
0009|[2026-09-07 23:35:52] DEBUG [API] Request Received {"method":"GET_AVAILABLE_EQUIPEMENT","params":{"userHash":"tbNaauZBCd******************************************************","apiKey":"4b******************"},"jsonrpc":"2.0","id":1788816952067}
0010|[2026-09-07 23:35:52] DEBUG [API] Send GET_AVAILABLE_EQUIPEMENT -> {"type":"AVAILABLE_EQUIPEMENT","payload":[{"logicalId":"206**************","name":"Ipad herv\u00e9","enable":"1","useWs":"1","polling":"0","deviceName":"iPad","deviceId":"8A4E5CEF-CB63-4C2A-AF02-825CD2571E84"},{"logicalId":"4b1**************","name":"iphone","enable":"1","useWs":"1","polling":"0","deviceName":null,"deviceId":null},{"logicalId":"6ddb********","name":"Nexus 7","enable":"0","useWs":"1","polling":"0","deviceName":"Nexus 7","deviceId":"676******"},{"logicalId":"f3f2****","name":"Samsung Tab 9","enable":"0","useWs":"1","polling":"0","deviceName":"Tab A9 de V\u00e9ronique","deviceId":"47cffa74744e3e1b"}]}