feat: Eine Geraetemarke kann jetzt auch als Anmeldung fuer eine App gelten
Die API kannte zwei Zustaende: angemeldet per Sitzungs-Cookie, oder eine enge Kurzbefehl-Marke, die nur erfassen darf. Eine native App passt in keinen davon - sie kann kein Cookie-Formular ausfuellen und soll das Passwort nicht auf dem Geraet halten. Neu ist die Reichweite "app": Sie gilt im Header X-Certain-Token wie eine Anmeldung, laeuft nicht nach 30 Tagen ab und laesst sich einzeln widerrufen. Die enge Marke bleibt eng - das ist der Punkt, an dem die Tests am genauesten hinsehen. Und eine App-Marke darf keine weitere ausstellen: Sonst stellte sich ein Dieb Ersatzschluessel aus und das Widerrufen liefe ins Leere. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
15b863ff5e
commit
8a7545bf5b
+14
-4
@@ -813,14 +813,24 @@ class CategorizationRule(Base):
|
||||
|
||||
|
||||
class TokenScope(str, enum.Enum):
|
||||
"""Was eine Gerätemarke darf. Bewusst eng gehalten.
|
||||
"""Was eine Gerätemarke darf.
|
||||
|
||||
Eine Marke liegt auf dem Telefon, oft in einem Kurzbefehl, den man teilt.
|
||||
Sie darf deshalb nur erfassen, niemals lesen: Geht das Gerät verloren, ist
|
||||
kein Datenabfluss möglich.
|
||||
``quick_add`` ist die enge Form und die Voreinstellung. Eine solche Marke
|
||||
liegt auf dem Telefon, oft in einem Kurzbefehl, den man teilt. Sie darf
|
||||
deshalb nur erfassen, niemals lesen: Geht das Gerät verloren, ist kein
|
||||
Datenabfluss möglich.
|
||||
|
||||
``app`` ist die Marke der nativen App und gilt wie eine Anmeldung – eine
|
||||
App muss alles können, was die Weboberfläche kann, und die API kennt
|
||||
sonst nur das Sitzungs-Cookie. Der Klartext liegt allein im Schlüsselbund
|
||||
des Geräts; widerrufen wird die Marke in den Einstellungen. Vergeben darf
|
||||
sie nur eine echte Anmeldung, nie eine Marke selbst: Sonst hätte ein Dieb
|
||||
sich beliebig viele Ersatzschlüssel ausgestellt und das Widerrufen wäre
|
||||
wirkungslos.
|
||||
"""
|
||||
|
||||
quick_add = "quick_add"
|
||||
app = "app"
|
||||
|
||||
|
||||
class ApiToken(Base):
|
||||
|
||||
Reference in New Issue
Block a user