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, String? app})
const

Properties

app → String?
Welcher Build der Anwendung gerade läuft, in derselben Form wie die Client-Kennung der Transporte (clientHeader, kasse-app/1.0.3+34). Bei einer Störungsmeldung die entscheidende Angabe: ohne sie lässt sich ein alter Build weder belegen noch ausschließen. Das Backend kürzt auf 80 Zeichen und zählt die Kopplung und Anmeldung über diesen Wert (register_devices/{id}.client).
final
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