diff --git a/boot_manager.py b/boot_manager.py index dee2b76..2ec4a7a 100644 --- a/boot_manager.py +++ b/boot_manager.py @@ -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, diff --git a/identity_iot.py b/identity_iot.py index 31fbee2..b13ed9c 100644 --- a/identity_iot.py +++ b/identity_iot.py @@ -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() diff --git a/node_access_control.py b/node_access_control.py index 0a075f2..2be2e18 100644 --- a/node_access_control.py +++ b/node_access_control.py @@ -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) \ No newline at end of file