Ich habe bei Google und StackOverflow nach einer Antwort auf meine Frage gesucht, aber keine gefunden.
Ich möchte das access_token für den Offline-Zugriff in meiner Datenbank speichern und die richtige Länge meiner Spalte angeben.
Ich kann nicht einmal finden, ob es nur eine Zahl oder eine Mischung aus Zahl und Zeichenfolge ist.
Mit der jüngsten Umstellung von Facebook auf verschlüsselte Zugriffstoken kann die Länge des Zugriffstokens bis zu 255 Zeichen betragen. Wenn Sie das Zugriffstoken in Ihrer Datenbank speichern, sollte die Spalte mindestens varchar (255) aufnehmen können. Hier ist ein Auszug aus dem Entwicklerblog von Facebook vom 4. Oktober 2011:
"Wenn die Migration des verschlüsselten Zugriffstokens aktiviert ist, hat sich das Format des Zugriffstokens geändert. Das neue Zugriffstokenformat ist vollständig undurchsichtig, und Sie sollten keine Abhängigkeit vom Format in Ihrem Code übernehmen. Ein varchar (255) -Feld reicht aus, um Speichern Sie die neuen Token. "
Vollständiger Blog-Beitrag hier: https://developers.facebook.com/blog/post/572
quelle
Diese Antwort ist nicht mehr korrekt und ich kann keinen korrigierten Wert in den FB-Dokumenten finden. Wir haben Zugriffstoken erhalten, die länger als 255 Zeichen sind. Wir wechseln stattdessen von VARCHAR zu SMALLTEXT, um zukunftssichere Dinge zu versuchen.
quelle
SMALLTEXT
oderMEDIUMTEXT
? Ich hatte zuvor auch mein access_token auf beschränktVARCHAR(255)
und beschäftige mich heute mit den Folgen davon .Aus Abschnitt 1.4 von
The OAuth 2.0 Authorization Protocol
( Entwurf-ietf-oauth-v2-22 )Ich habe nach den "Begleitspezifikationen" gesucht, aber nichts Relevantes gefunden und in Abschnitt 11.2.2 heißt es
Dies scheint darauf hinzudeuten, dass der Parameter access_token innerhalb dieser Spezifikation definiert ist. Was ich denke, der Parameter ist, aber das eigentliche Zugriffstoken ist nicht vollständig ausgearbeitet.
Update: Die neueste Version dieses Schreibens der Spezifikation ( Entwurf-ietf-oauth-v2-31 ) enthält einen Anhang, der besser definiert, was vom Parameter access_token zu erwarten ist
Dies bedeutet im Wesentlichen, dass das access_token mindestens 1 Zeichen lang sein sollte, es gibt jedoch keine Begrenzung für die in dieser Spezifikation definierte Dauer.
Beachten Sie, dass sie VSCHAR =% x20-7E definieren
quelle
Der Facebook-Zugriffstoken kann länger als 255 Zeichen sein. Ich hatte viele Fehler, wie zum Beispiel,
ActiveRecord::StatementInvalid: PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)
wo der Wert Facebook-Zugriffstoken war. Verwenden Sie keinestring
Typenspalte, da deren Länge begrenzt ist. Sie können dietext
Typspalte verwenden, um Token zu speichern.quelle
Vor kurzem hat unsere App sie länger als 100 Zeichen gesehen. Ich suche immer noch nach Dokumentation, damit ich eine "sichere" Feldgröße für sie herausfinden kann.
quelle
Ich werde die Antwort aus dem Zeitaufwand aktualisieren.
Aus der OAuth2-Dokumentation
(Abschnitt 4.2.2 dieses Dokuments )
Hinweis: Facebook verwendet OAuth2, wie auf dieser Seite erwähnt .
Daher scheinen auf der Entwickler-Website von Facebook keine Informationen über die Länge des OAuth-Tokens verfügbar zu sein. Yahoo scheint ein 400 Bit langes Token zu verwenden, daher ist es am besten anzunehmen, dass eine TEXT-Spalte in MySQL sicherer ist als ein Varchar.
quelle