Busqué en Google y StackOverflow para encontrar una respuesta a mi pregunta, pero no puedo encontrar una.
Me gustaría almacenar el access_token en mi base de datos para el acceso sin conexión y me gustaría asegurarme de especificar la longitud correcta de mi columna.
Ni siquiera puedo encontrar si es solo un número o una mezcla entre número y cadenas.
Con el reciente movimiento de Facebook hacia los tokens de acceso cifrados, la longitud del token de acceso puede ser de hasta 255 caracteres. Si está almacenando el token de acceso en su base de datos, la columna debería poder acomodar al menos varchar (255). Aquí hay un extracto del blog de desarrolladores de Facebook del 4 de octubre de 2011:
"Con la migración del token de acceso cifrado habilitada, el formato del token de acceso ha cambiado. El nuevo formato del token de acceso es completamente opaco y no debe depender del formato de su código. Un campo varchar (255) será suficiente para almacenar los nuevos tokens ".
Publicación completa del blog aquí: https://developers.facebook.com/blog/post/572
fuente
Esta respuesta ya no es correcta y no puedo encontrar un valor corregido en los documentos de FB. Hemos recibido tokens de acceso que tienen más de 255 caracteres. En su lugar, nos estamos moviendo de VARCHAR a SMALLTEXT para intentar hacer cosas a prueba de futuro.
fuente
SMALLTEXT
oMEDIUMTEXT
? Anteriormente también tenía mi access_token restringidoVARCHAR(255)
y estoy lidiando con las consecuencias de eso hoy.De la sección 1.4 de
The OAuth 2.0 Authorization Protocol
( draft-ietf-oauth-v2-22 )Busqué las "especificaciones complementarias" pero no encontré nada relevante y en la sección 11.2.2 dice
Lo que parece indicar que el parámetro access_token está definido dentro de esta especificación. Lo que supongo que es el parámetro, pero el token de acceso real no está completamente desarrollado.
Actualización: la última versión de este escrito de la especificación ( borrador-ietf-oauth-v2-31 ) incluye un apéndice que define mejor qué esperar del parámetro access_token
Entonces, esencialmente, lo que esto significa es que el access_token debe tener al menos 1 carácter de longitud, pero no hay límite sobre cuánto tiempo se define en esta especificación.
Tenga en cuenta que definen VSCHAR =% x20-7E
fuente
El token de acceso de Facebook puede tener más de 255 caracteres. Tuve muchos errores, como
ActiveRecord::StatementInvalid: PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)
dónde el valor era el token de acceso a Facebook. No usestring
columna de tipo porque su longitud es limitada. Puede usar latext
columna de tipo para almacenar tokens.fuente
Recientemente, nuestra aplicación los ha visto con más de 100 caracteres. Todavía estoy buscando documentación para poder encontrar un tamaño de campo 'seguro' para ellos.
fuente
Actualizaré la respuesta del tiempo invertido.
De la documentación de OAuth2,
(Sección 4.2.2 de este documento )
Nota: Facebook usa OAuth2, como se menciona en esta página .
Así que ahora, parece que no hay información disponible en el portail de desarrolladores de Facebook sobre la longitud del token OAuth. Yahoo parece usar un token de 400 bits de largo, por lo que es mejor asumir que una columna TEXT en MySQL es más segura que un varchar.
fuente