ich habe endlich mal wieder etwas Zeit gefunden an meinen Projekt weiterzumachen.
Nun stellte ich fest, dass Loxone in den kommenden Versionen wahrscheinlich ausschließlich die token Authentifizierung unterstützen wird.
Also wollte ich meinen Code etwas aktualisieren.
Hat jemand schon funktionierenden Code für eine Tokenauth:
Ich versuche es gerade in python nach der Anleitung scheitere aber leider:
Analog zu
https://www.loxone.com/dede/wp-conte...ver.pdf?x62000
import urllib.request
from hashlib import sha1
import hmac
import json
import codecs
base_url="http://demominiserver.loxone.com:7779"
pw = "web"
user ="web"
uuid="107a0106-0254-25d5-ffffb64bfc4c285"
### STEP1: acquire Key and salt
r = urllib.request.urlopen(base_url+"/jdev/sys/getkey2/web")
jm = json.loads(r.read())
key=jm['LL']['value']['key']
salt=codecs.decode(jm['LL']['value']['salt'],'hex')
print("key",key)
print("key_hex",codecs.decode(key,'hex'))
print("salt",salt)
print("salt_hex",salt)
### STEP2: generate PwHash
hash=pw+":"+codecs.decode(salt)
print("to be hashed",hash)
hashed = hmac.new(codecs.decode(key,'hex'), hash.encode(), sha1)
hashed_upp=str.upper(hashed.hexdigest())
print("PWhash finished :",hashed_upp)
### STEP3: generate USER:PwHash
user_pwhash="web"+":"+hashed_upp
hashed = hmac.new(codecs.decode(key,'hex'), user_pwhash.encode(), sha1)
hashed_hex=hashed.hexdigest()
print("user:pwhash HASH: finished :",hashed_hex)
### STEP4: Get Token URL
build_url="/jdev/sys/gettoken/"+hashed_hex+"/"+user+"/2/"+uuid+"/pypy"
url=base_url+build_url
print("URL:",url)
r = urllib.request.urlopen(url)
jm = json.loads(r.read())
print(jm)
key 43394338313943463739363031314239373330383941443536 414230353936354631304435463134
key_hex b'C9C819CF796011B973089AD56AB05965F10D5F14'
salt b'107a0106-0254-25d5-ffffb64bfc4c285b'
salt_hex b'107a0106-0254-25d5-ffffb64bfc4c285b'
to be hashed web:107a0106-0254-25d5-ffffb64bfc4c285b
PWhash finished : D64758FC0FF07A63833E9170FCACF609B8EE6F96
user
 whash HASH: finished : 36e66314cb17ab54e4ce99d496b03e7bd918e8cf
whash HASH: finished : 36e66314cb17ab54e4ce99d496b03e7bd918e8cfURL: http://demominiserver.loxone.com:777...4bfc4c285/pypy
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
Eigentlich müsste es doch so funktionieren, dass ich zumindest den Token bekomme aber ich erhalte immer eine Bad Request 400.
UPDATE:
Hat nichts mit dem Demoserver zu tun, gegen meinen Server zuhause kommt genau die selbe Fehlermeldung.
Viele Grüße
 
	
Kommentar