2011-11-11 13 views
5

Khi cho phép đăng nhập bằng OAuth (như OpenID, Facebook, Twitter, v.v.), chúng tôi lưu mã thông báo truy cập được cung cấp bởi nhà cung cấp Oath trong cơ sở dữ liệu mysql để xác thực trong tương lai. Trong một số hướng dẫn, cột để lưu mã thông báo truy cập là varchar(255) và một số sử dụng text. Tôi tự hỏi liệu mã thông báo truy cập (bởi các trang web phổ biến như facebook và twitter) có dài hơn 255 ký tự cần cột text hay không. Chúng ta có nên xem xét khả năng này không?Mã thông báo truy cập có thể dài hơn 255 ký tự không?

+0

Từ thông số kỹ thuật: "Kích thước chuỗi mã thông báo truy cập không được xác định bởi đặc điểm kỹ thuật này". - https://tools.ietf.org/html/rfc6749#section-4.2.2 –

Trả lời

3

Bạn sẽ không gặp vấn đề với Facebook hoặc Twitter từ trải nghiệm của mình (Trong hơn 3 năm không có vấn đề gì đối với tôi trên hệ thống lưu trữ ở độ dài 255). Điều đó nói rằng, tìm kiếm nhanh đã đưa ra câu hỏi này trên Quora http://www.quora.com/OAuth-1/Whats-the-maximum-length-of-an-OAuth-access-token-key-secret-pair

Câu trả lời này là cực kỳ cũ và không chính xác. Nhìn vào các câu trả lời mới nhất. Không giới hạn kích thước của mã thông báo truy cập.

+0

Bạn phải đăng ký tại quora, để đọc câu trả lời của họ. Tinh hoa của câu trả lời là gì? –

+3

Nghiêm túc, bạn cũng có thể liên kết với Trao đổi của Chuyên gia. Ý chính của câu trả lời Quora là: độ dài không được đề cập trong thông số kỹ thuật; bạn không nên giới hạn rõ ràng kích thước của mã thông báo mà bạn sẽ chấp nhận; mã thông báo của yahoo là khoảng 400 ký tự tại thời điểm câu trả lời quora; Các mã thông báo của facebook có khoảng 344 ký tự vào thời điểm trả lời một câu hỏi khác. – Kevin

3

điều này có vẻ đã lỗi thời ... Facebook hiện có thể gửi mã thông báo dài hơn 255 ký tự, ít nhất là cho thẻ 60 ngày (những người thay thế truy cập ngoại tuyến).

Bạn đã kiểm tra điều này related question?

+0

Tôi đồng ý, chúng tôi đã gặp sự cố với điều này, họ vừa mới đây (tuần trước) bắt đầu phát hành các ID lớn hơn. – covati

+0

Vâng, vặn cơ sở dữ liệu của tôi ... xD – Daren

27

Tôi làm việc tại Facebook và tôi có thể đưa ra câu trả lời dứt khoát về điều này.

Vui lòng không đặt kích thước tối đa trên bộ nhớ cho mã thông báo truy cập. Chúng tôi hy vọng rằng cả hai sẽ phát triển và thu nhỏ theo thời gian khi chúng tôi thêm và xóa dữ liệu và thay đổi cách chúng được mã hóa.

Chúng tôi đã đưa ra hướng dẫn ở một nơi về nó là 255 ký tự. Tôi đã cập nhật bài viết trên blog rằng đã có thông tin đó và cập nhật tài liệu access token mới của chúng tôi bao gồm một lưu ý về kích cỡ:

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

Xin lỗi vì sự nhầm lẫn.

+2

Điều này sẽ là câu trả lời được chấp nhận - chỉ cần chạy vào một vấn đề w/một cột cơ sở dữ liệu được varchar (255) và có một mã thông báo Facebook OAuth 260 ký tự. –