Saya mencari di Google dan StackOverflow untuk menemukan jawaban atas pertanyaan saya tetapi saya tidak dapat menemukannya.
Saya ingin menyimpan access_token ke database saya untuk akses offline dan saya ingin memastikan untuk menentukan panjang kolom saya yang benar.
Saya bahkan tidak dapat menemukan apakah itu hanya angka atau campuran antara angka dan string.
Dengan langkah Facebook baru-baru ini ke token akses terenkripsi, panjang token akses bisa mencapai 255 karakter. Jika Anda menyimpan token akses dalam database Anda, kolom tersebut harus dapat menampung setidaknya varchar (255). Berikut kutipan dari blog Pengembang Facebook dari 4 Oktober 2011:
"Dengan migrasi Token Akses Terenkripsi diaktifkan, format token akses telah berubah. Format token akses baru benar-benar buram dan Anda tidak boleh bergantung pada format dalam kode Anda. Bidang varchar (255) akan cukup untuk simpan token baru. "
Posting blog lengkap di sini: https://developers.facebook.com/blog/post/572
sumber
Jawaban ini tidak lagi benar, dan saya tidak dapat menemukan nilai yang dikoreksi di dokumen FB. Kami telah menerima token akses yang lebih dari 255 karakter. Kami pindah dari VARCHAR ke SMALLTEXT sebagai gantinya untuk mencoba hal-hal yang tahan masa depan.
sumber
SMALLTEXT
atauMEDIUMTEXT
? Saya sebelumnya juga membatasi akses_token sayaVARCHAR(255)
dan saya berurusan dengan dampaknya hari ini.Dari bagian 1.4 dari
The OAuth 2.0 Authorization Protocol
( draft-ietf-oauth-v2-22 )Saya mencari "spesifikasi pendamping" tetapi tidak menemukan sesuatu yang relevan dan di bagian 11.2.2 disebutkan
Yang tampaknya menunjukkan bahwa parameter access_token ditentukan dalam spesifikasi ini. Yang saya kira parameternya adalah tetapi token akses yang sebenarnya tidak sepenuhnya sempurna.
Pembaruan: Versi terbaru dari penulisan spesifikasi ini ( draf-ietf-oauth-v2-31 ) menyertakan lampiran yang mendefinisikan lebih baik apa yang diharapkan dari parameter access_token
Jadi intinya adalah bahwa access_token harus memiliki setidaknya 1 karakter tetapi tidak ada batasan berapa lama yang ditentukan dalam spesifikasi ini.
Perhatikan bahwa mereka mendefinisikan VSCHAR =% x20-7E
sumber
Token akses Facebook bisa lebih dari 255 karakter. Saya mengalami banyak kesalahan seperti di
ActiveRecord::StatementInvalid: PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)
mana nilainya adalah token akses facebook. Jangan gunakanstring
kolom tipe karena panjangnya terbatas. Anda dapat menggunakantext
kolom type untuk menyimpan token.sumber
Baru-baru ini, aplikasi kami telah melihatnya lebih dari 100 karakter. Saya masih mencari dokumentasi sehingga saya dapat menemukan ukuran bidang yang 'aman' untuk mereka.
sumber
Saya akan memperbarui jawaban dari waktu yang dihabiskan.
Dari dokumentasi OAuth2,
(Bagian 4.2.2 dari dokumen ini )
Catatan: Facebook menggunakan OAuth2, seperti yang disebutkan di halaman ini .
Jadi sekarang, sepertinya tidak ada informasi yang tersedia di portail pengembang Facebook tentang panjang token OAuth. Yahoo tampaknya menggunakan token panjang 400 bit, jadi sebaiknya asumsikan bahwa kolom TEXT di MySQL lebih aman daripada varchar.
sumber