2011-11-11 41 views
5

Al permitir el inicio de sesión de OAuth (como OpenID, Facebook, Twitter, etc.), guardamos el token de acceso proporcionado por el proveedor de Oath en la base de datos mysql para una futura autenticación. En algunos tutoriales, la columna para guardar el token de acceso es varchar(255) y algunos usan text. Me pregunto si el token de acceso (por sitios web comunes como Facebook y Twitter) tiene más de 255 caracteres que necesitan la columna text. ¿Deberíamos considerar esta posibilidad?¿El token de acceso puede tener más de 255 caracteres?

+0

Según la especificación: "El tamaño de la secuencia del token de acceso no está definido por esta especificación". - https://tools.ietf.org/html/rfc6749#section-4.2.2 –

Respuesta

3

No tendrá problemas con Facebook o Twitter desde mi experiencia (en 3 años o más no he tenido ningún problema para que mis sistemas lo almacenen en 255). Dicho esto, una búsqueda rápida hizo surgir esta pregunta en Quora http://www.quora.com/OAuth-1/Whats-the-maximum-length-of-an-OAuth-access-token-key-secret-pair

Esta respuesta es increíblemente antigua e incorrecta. Mira las últimas respuestas. No limite el tamaño del token de acceso.

+0

Debes registrarte en quora para leer sus respuestas. ¿Cuál es la quintaesencia de las respuestas allí? –

+3

En serio, también podría estar enlazando con Expert's Exchange. La esencia de las respuestas de Quora son: la longitud no está cubierta en la especificación; no debes limitar explícitamente el tamaño de un token que aceptarás; Los tokens de yahoo tenían alrededor de 400 caracteres en el momento de la respuesta quora; Los tokens de Facebook tenían alrededor de 344 caracteres en el momento de una respuesta de quora diferente. – Kevin

3

esto parece obsoleto ... Facebook ahora puede enviar tokens de más de 255 caracteres, al menos para los tokens de 60 días (aquellos que sustituyen el acceso sin conexión).

¿Has visto esto related question?

+0

Acepto, tuvimos un problema con esto, recientemente (la semana pasada) comenzaron a emitir ID más grandes. – covati

+0

Sí, atornillé mi base de datos ... xD – Daren

27

Trabajo en Facebook y puedo dar una respuesta definitiva al respecto.

No coloque un tamaño máximo en el almacenamiento de un token de acceso. Esperamos que ambos crezcan y disminuyan con el tiempo a medida que agreguemos y eliminemos datos y cambiemos la forma en que están codificados.

Orientamos en un lugar sobre 255 caracteres. He actualizado el blog que tenía esa información y ser informado de nuestros nuevos documentos token de acceso para incluir una nota acerca de los tamaños:

https://developers.facebook.com/docs/facebook-login/access-tokens/

Lo siento por la confusión.

+2

Esta debería ser la respuesta aceptada, simplemente encontré un problema con una columna de base de datos que era varchar (255) y obtuve un token de Facebook OAuth de 260 caracteres. –

Cuestiones relacionadas