Cách tốt nhất để thực hiện xác thực OAuth Twitter một cách an toàn trong JavaScript là gì?Xác thực OAuth an toàn trên Twitter trong JavaScript/jQuery (cộng với trợ giúp bên máy chủ)
Tôi đang cố gắng viết chương trình để cho phép người dùng phân tích mức sử dụng Twitter và người theo dõi/bạn bè của mình. Tôi đã viết một phiên bản phía máy chủ hoạt động bằng cách sử dụng mô-đun tweepy python.
Tôi muốn chia sẻ nó với mọi người, nhưng tôi muốn nó chạy trong trình duyệt để có thể mở rộng so với chạy trên máy chủ nhỏ của tôi.
tôi thấy một câu hỏi khác nơi Kết quả cuối cùng là nó không được khuyến khích và không an toàn: JavaScript OAuth sign in with Twitter
nào có ý nghĩa nếu một được gửi cho người tiêu dùng (ứng dụng) bí mật hoặc truy cập (user) bí mật trong JavaScript của ứng dụng.
Nhưng tại sao tôi không thể xây dựng các URL trên phía máy chủ như ở đây - http://djangosnippets.org/snippets/1353/
Sau đó gửi URL xác thực lại cho trình duyệt, một cái gì đó như thế này từ công cụ OAuth trên trang ứng dụng của tôi Twitter (không chứng chỉ hợp lệ)
GET & https% 3A% 2F% 2Fapi.twitter.com% 2F1% 2F & lấy% 252Faccount% 252Fverify_credentials_json% 3D% 26oauth_consumer_key% GD0bgcgMU4MDwNfKQpLFQS3% 26oauth_nonce% 3D24ad5049501dee1292afd8cf22307d68% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1329173626 % 26oauth_token% uPUpxsBc3D283768289LtQ6R1E z1KeD8DOSsm5XpqJaKI28ysYh% 26oauth_version% 3D1.0
Sau đó, sử dụng jQuery để xác thực bằng thông tin đăng nhập của người dùng và chạy phân tích.
Đó là một phần quan trọng của công việc, tôi ghét phải làm điều đó và sau đó tìm ra nó không hoạt động hoặc là một cách tiếp cận không an toàn. (hoặc nó đã được thực hiện)
Điều đó có an toàn không? Nó dường như không để lộ bất kỳ bí mật nào.
Điều đó có hiệu quả không?
Bất kỳ con trỏ/ví dụ nào về đúng cách để thực hiện xác thực cho jQuery noob, với tiêu đề Cấp quyền: và ủy quyền cookie/chuyển hướng cần thiết?
Tôi cảm thấy như tôi đang thiếu một cái gì đó và có một lý do điều này sẽ không hoạt động, hoặc nó phải đã tồn tại ở đâu đó, nhưng đã không tìm thấy nó. Cảm ơn nhiều!
Tôi nghĩ điểm tách chìa khóa người tiêu dùng và bí mật của người tiêu dùng là bạn có thể phơi chìa khóa, và không ai có thể làm bất cứ điều gì mà không có bí mật. Người nào đó có thể làm gì chỉ với khóa người tiêu dùng, nếu họ không có bí mật của người tiêu dùng? –
Vâng, bạn nói đúng. Những gì bạn đang đề xuất cơ bản là để có dấu hiệu máy chủ của bạn bằng cách sử dụng bí mật của người tiêu dùng của bạn, sau đó vượt qua đó trở lại cho khách hàng. Bạn có thể làm điều đó, nhưng nó không phải bất kỳ khả năng mở rộng hơn là chỉ có máy chủ của bạn thực hiện yêu cầu thay mặt cho người dùng. – Alan
Có, về cơ bản tôi muốn proxy xác thực, và sau đó có trình duyệt thực hiện một loạt các cuộc gọi API. Nó sẽ có vài trăm cuộc gọi, ngay đến giới hạn điều chỉnh. Ngoài ra, họ sẽ mất nhiều thời gian và liên kết tài nguyên trong khi họ đang chạy. Vì vậy, tôi thực sự không muốn làm điều đó trên máy chủ, sẽ được đơn đặt hàng của cường độ tải nhiều hơn. Muốn trả lại một URL hoặc mã thông báo cho trình duyệt, và sau đó sử dụng nó để thực hiện các cuộc gọi API với jQuery hoặc JavaScript thuần túy. –