feat: v0.3.5 — full boot working, fresh JWT every boot, it_node_checkin operational

This commit is contained in:
2026-06-07 15:15:48 +02:00
parent 5970edd06a
commit 2720233964
3 changed files with 17 additions and 10 deletions

View File

@@ -186,7 +186,7 @@ def do_checkin(cfg):
for attempt in range(3):
try:
_show(['CHECKIN', 'Registering IoT...', 'attempt ' + str(attempt+1) + '/3', '', ''])
reg = identity.ensure_registered()
identity.ensure_registered()
break
except Exception as e:
print('[checkin] IoT register attempt', attempt + 1, ':', e)
@@ -195,6 +195,8 @@ def do_checkin(cfg):
raise
utime.sleep(3)
# Seconda chiamata idempotente
reg = identity.ensure_registered()
uid_short = reg.get('node_uid', '')[:12] + '...'
_show(['CHECKIN', 'IoT Node ' + reg.get('result', ''), uid_short, '', ''])
utime.sleep(1)
@@ -217,9 +219,11 @@ def do_checkin(cfg):
from identity_iot_aes import aes_cbc_encrypt, aes_cbc_decrypt
payload = ujson.dumps({
'request': 'it_node_checkin',
'node_id': str(cfg.get('node_id', '')),
'request': 'it_node_checkin',
'node_id': str(cfg.get('node_id', '')),
'tenant_id': str(cfg.get('tenant_id', '')),
})
print('[checkin] node_id:', cfg.get('node_id'), 'tenant_id:', cfg.get('tenant_id'))
cipher = aes_cbc_encrypt(payload, key, iv)
body = ujson.dumps({'data': cipher})
@@ -229,7 +233,7 @@ def do_checkin(cfg):
cfg['identity_node_url'],
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token,
'Authorization': 'Bearer ' + token.strip(),
},
data=body,
timeout=20,

View File

@@ -92,9 +92,11 @@ class IdentityIoT:
def authenticate(self):
"""Full challenge/response flow. Returns JWT string."""
jwt = self._load_jwt()
if jwt and not self._is_jwt_expired(jwt):
return jwt
#Not using cashing
#jwt = self._load_jwt()
#if jwt and not self._is_jwt_expired(jwt):
# return jwt
node_uid = self._get_node_uid()

View File

@@ -16,14 +16,15 @@ def run_access_control(cfg, caps):
if not caps.get('has_nfc'):
print('[access_control] ERROR: no NFC hardware detected')
return
while True:
utime.sleep(60)
# TODO: init PN532
# TODO: wait for badge tap
# TODO: read UID from NTAG424
# TODO: challenge/verify against cfg['base_url']
# TODO: challenge/verify against cfg['identity_tag_url']
# TODO: trigger relay on success if has_relay
while True:
print('[access_control] waiting for badge...')
utime.sleep(2)
utime.sleep(2)