Eu pesquisei no Google e no StackOverflow para encontrar uma resposta para minha pergunta, mas não consigo encontrar uma.
Eu gostaria de armazenar o access_token em meu banco de dados para acesso offline e gostaria de ter certeza de especificar o comprimento correto de minha coluna.
Não consigo nem descobrir se é apenas um número ou uma mistura de número e cordas.
Com a recente mudança do Facebook para tokens de acesso criptografados, o comprimento do token de acesso pode ser de até 255 caracteres. Se você estiver armazenando o token de acesso em seu banco de dados, a coluna deve ser capaz de acomodar pelo menos varchar (255). Aqui está um trecho do blog de desenvolvedores do Facebook de 4 de outubro de 2011:
"Com a migração do token de acesso criptografado ativada, o formato do token de acesso mudou. O novo formato do token de acesso é completamente opaco e você não deve depender do formato do seu código. Um campo varchar (255) será suficiente para armazene os novos tokens. "
Postagem completa do blog aqui: https://developers.facebook.com/blog/post/572
fonte
Esta resposta não está mais correta, e não consigo encontrar um valor corrigido nos documentos do FB. Temos recebido tokens de acesso com mais de 255 caracteres. Estamos mudando de VARCHAR para SMALLTEXT em vez de tentar coisas à prova de futuro.
fonte
SMALLTEXT
ouMEDIUMTEXT
? Anteriormente, eu também tinha meu access_token restrito aVARCHAR(255)
e estou lidando com as consequências disso hoje.Da seção 1.4 de
The OAuth 2.0 Authorization Protocol
( draft-ietf-oauth-v2-22 )Procurei as "especificações complementares", mas não encontrei nada relevante e na seção 11.2.2 ele afirma
O que parece indicar que o parâmetro access_token é definido dentro desta especificação. Acho que o parâmetro é, mas o token de acesso real não foi totalmente desenvolvido.
Atualização: A última versão deste escrito da especificação ( draft-ietf-oauth-v2-31 ) inclui um apêndice que define melhor o que esperar do parâmetro access_token
Então, essencialmente, o que isso significa é que o access_token deve ter pelo menos 1 caractere, mas não há limite de quanto tempo definido nesta especificação.
Observe que eles definem VSCHAR =% x20-7E
fonte
O token de acesso do Facebook pode ter mais de 255 caracteres. Eu tive muitos erros como
ActiveRecord::StatementInvalid: PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)
onde o valor era o token de acesso do Facebook. Não usestring
coluna de tipo porque seu comprimento é limitado. Você pode usar atext
coluna de tipo para armazenar tokens.fonte
Recentemente, nosso aplicativo os viu com mais de 100 caracteres. Ainda estou procurando por documentação para poder descobrir um tamanho de campo 'seguro' para eles.
fonte
Vou atualizar a resposta do tempo gasto.
Na documentação do OAuth2,
(Seção 4.2.2 de deste documento )
Observação: o Facebook está usando OAuth2, conforme mencionado em nesta página .
Portanto, agora, nenhuma informação parece estar disponível no portal de desenvolvedores do Facebook sobre o tamanho do token OAuth. O Yahoo parece usar um token de 400 bits, portanto, é melhor assumir que uma coluna TEXT no MySQL é mais segura do que um varchar.
fonte