Wie bei allem anderen, ist die Antwort "es kommt".
Zuerst müssen Sie feststellen, ob das Speichern des vollständig codierten JWT die richtige Lösung ist. Ich neige dazu, die JWT-Zeichenfolge nicht zu speichern und stattdessen die Ansprüche zu speichern, die zum Erstellen der JWT verwendet wurden, wodurch eine Menge Speicherplatz in der Datenbank gespart wird.
Wenn Sie sich entscheiden, dass das Speichern des JWT die richtige Methode ist, dann können wir Ihre Optionen betrachten.
TEXT und LONGTEXT sind nur Typen von CLOB, also können wir das ignorieren.
TEXT und VARCHAR haben beide Grenzen von 64kb, so dass alles darüber LONGTEXT (oder MEDIUMTEXT, die Sie nicht erwähnt haben, aber eine Option ist) erfordern.
Der Unterschied zwischen TEXT und VARCHAR ist, dass VARCHAR in der Zeile gespeichert wird, aber TEXT ist im Grunde ein Zeiger. VARCHAR wird schneller sein, wenn Sie die JWT oft lesen werden, aber größere Strings werden dazu führen, dass jede einzelne Zeile größer wird, was ein Performance-Hit wird.
Mit so groß wie JWTs neigen, würde ich sagen, dass TEXT eine ziemlich gute Wahl ist, JWTs in der Datenbank zu speichern. Wenn Sie absolut sicher sind, dass die JWTs sehr klein bleiben, dann kann ein VARCHAR eine bessere Leseleistung erzielen, aber Sie würden am besten mit realen Daten testen, um sicher zu gehen.
Wenn Sie ein Feld benötigen, das größer ist als TEXT, dann wiederhole ich meine Empfehlung, das Speichern des codierten JWT zu vermeiden, aber LONGTEXT ist eine Option.
Ist es nicht der Sinn eines JWT, dass es nicht in der Datenbank gespeichert werden muss? – ceejayoz
@ceejayoz Refresh-Tokens können auch JWTs sein und ich glaube, man müsste sie in einem Datenspeicher speichern. – georaldc