2009-12-10 8 views
29

Tôi đã tự hỏi cách thực hiện twitter OAuth qua cửa sổ bật lên, tức là tải trang Oauth trong cửa sổ bật lên và thực hiện cuộc gọi lại gần cửa sổ con và tải lại cửa sổ chính.Twitter OAuth qua cửa sổ bật lên

Chỉnh sửa: OK iframe là xấu, nhưng làm thế nào bạn sẽ thực hiện được ở trên, tôi nhận thấy posterous.com thực hiện việc này - Tôi đang tìm cách đạt được cùng một luồng như FB kết nối.

Trả lời

61

Làm điều tương tự cho Yahoo hôm nay ...

  1. mở một popup
  2. Gửi dùng twitter để xác thực
  3. Twitter gửi người sử dụng trở lại mysite.com/authcompleted .php, với các tham số xác thực trong chuỗi truy vấn. Vẫn còn trong cửa sổ bật lên ở đây.
  4. Các popup (mysite.com/authcompleted.html) đọc chuỗi truy vấn và gửi dữ liệu vào cửa sổ mở thông qua javascript

    window.opener.setTwitterAuthData (yourData)

  5. Bên setTwitterAuthData, mà nằm trong cửa sổ chính của bạn, đặt trường biểu mẫu thích hợp và gửi dữ liệu đến máy chủ của bạn.

+0

cách bạn vẫn có thể ở trong cửa sổ bật lên, điểm 3., khi gọi lại là mysite.com/authcompleted. php? – Owen

+1

@mark Bạn trỏ popup đến yahoo để bắt đầu, sau đó chuyển hướng yahoo, vẫn còn trong cửa sổ bật lên, để authcompleted.php – morgancodes

+0

cảm ơn, ý nghĩa – Owen

5

Bạn không nên làm điều này. Tải nó trong IFrame ẩn URL của người dùng, khiến họ khó xác nhận rằng họ đang nhập mật khẩu của họ trên twitter.com chứ không phải trang web của bên thứ ba (tức là lừa đảo).

+2

Tôi đồng ý về nguyên tắc, nhưng trang auth chỉ cho phép || từ chối các nút ứng dụng này - nó không yêu cầu bạn nhập mật khẩu của bạn. Vì vậy, tôi không thể thấy lý do tại sao nó phải là một vấn đề từ một quan điểm bảo mật, trong khi giúp dòng chảy UX. – MatthewFord

+4

Nếu bạn không đăng nhập, nó sẽ hỏi bạn mật khẩu của bạn. –

+3

Có iframe busting JS trên trang không đăng nhập mà nó yêu cầu bạn nhập mật khẩu của bạn (dòng 37) – MatthewFord