Qual è la lunghezza del token di accesso in Facebook OAuth2?


Answers

Con il recente spostamento di Facebook su token di accesso crittografati, la lunghezza del token di accesso può essere di 255 caratteri. Se stai memorizzando il token di accesso nel tuo database, la colonna dovrebbe essere in grado di contenere almeno varchar (255). Ecco un estratto dal blog degli sviluppatori di Facebook del 4 ottobre 2011:

"Con la migrazione del token di accesso crittografato abilitata, il formato del token di accesso è cambiato.Il nuovo formato di token di accesso è completamente opaco e non è necessario prendere alcuna dipendenza dal formato nel codice. Un campo varchar (255) sarà sufficiente per memorizzare i nuovi token. "

Post completo del blog qui: https://developers.facebook.com/blog/post/572

Question

Ho cercato su Google e per trovare una risposta alla mia domanda ma non riesco a trovarne una.

Vorrei memorizzare access_token nel mio database per l'accesso offline e mi piacerebbe essere sicuro di specificare la lunghezza corretta della mia colonna.

Non riesco nemmeno a trovare se è solo un numero o un mix tra numero e archi.




Di recente, la nostra app li ha visti più di 100 caratteri. Sto ancora cercando la documentazione in modo da poter calcolare una dimensione del campo 'sicura' per loro.




Dalla sezione 1.4 del The OAuth 2.0 Authorization Protocol ( draft-ietf-oauth-v2-22 )

I token di accesso possono avere diversi formati, strutture e metodi di utilizzo (ad esempio proprietà crittografiche) in base ai requisiti di sicurezza del server delle risorse. Gli attributi dei token di accesso e i metodi utilizzati per accedere alle risorse protette vanno oltre lo scopo di questa specifica e sono definiti dalle specifiche del compagno.

Ho cercato le "specifiche companion" ma non ho trovato nulla di rilevante e nella sezione 11.2.2 si afferma

o Nome parametro: access_token
o Posizione di utilizzo dei parametri: risposta all'autorizzazione, risposta token
o Cambia controller: IETF
o Documenti di specifica: [[questo documento]]

Il che sembra indicare che il parametro access_token è definito all'interno di questa specifica. Quale indovino il parametro è ma il token di accesso reale non è completamente spiegato.

Aggiornamento: l'ultima versione di questa scrittura della specifica ( draft-ietf-oauth-v2-31 ) include un'appendice che definisce meglio cosa aspettarsi dal parametro access_token

A.12. Sintassi "access_token"

The "access_token" element is defined in Section 4.2.2 and
Section 5.1:

  access-token = 1*VSCHAR

Quindi, in sostanza, ciò significa che il token di accesso deve essere lungo almeno 1 carattere, ma non esiste un limite per quanto tempo è definito in questa specifica.

Nota che definiscono VSCHAR =% x20-7E