RegisterClientInfo class

Kopplung und Anmeldung eines Kassengeräts — der Zwilling von register/pairing.ts im JS-Paket @kreiseck/kasseneck-api.

Diese Aufrufe laufen ohne jede Identität: vor ihnen gibt es weder ID-Token noch Sitzung noch api_key. Der Kopplungs-Code bzw. das Gerätegeheimnis ist der Nachweis. Deshalb stehen sie bewusst neben KasseneckApi (die braucht einen api_key) und nicht darin — es soll im Paket keinen Weg geben, einen anmeldungsfreien Client für alle Aufrufe zu bekommen.

Der Ablauf einer Kasse:

  1. Im Panel wird ein Gerät angelegt → achtstelliger Code (15 Minuten gültig, einmal verwendbar).
  2. RegisterClient.pairRegisterDevice tauscht ihn gegen den dauerhaften Ausweis des Geräts (ownerUid, deviceId, deviceSecret). Das Geheimnis liefert das Backend genau einmal aus — es gehört in den sicheren Speicher des Systems (Keychain/Keystore), nicht in einfache Einstellungen.
  3. RegisterClient.listRegisterUsersForDevice liefert die Benutzer, die PIN-Regel und den Anmeldemodus für den Anmeldebildschirm.
  4. RegisterClient.registerUserLogin bzw. RegisterClient.registerPinLogin eröffnet die Sitzung: Custom Token (→ Firebase → ID-Token) plus sessionId. Was das Gerät über sich sagt — fürs Panel („welches Gerät ist das?").

Constructors

RegisterClientInfo({String? userAgent, String? platform, String? language, String? tz, ({int h, int w})? screen})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
language String?
final
platform String?
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
screen → ({int h, int w})?
final
tz String?
IANA-Zeitzone, z. B. Europe/Vienna.
final
userAgent String?
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited