2010-12-13 26 views
27

Tôi đang triển khai trình cắm có thể nhúng ở các trang web khác nhau (a la Meebo, Wibiya) và tôi muốn sử dụng Facebook Connect. Trình cắm được cho là có thể nhúng trong các trang web có tên miền khác nhau. Vấn đề là, Facebook kết nối chỉ cho phép một tên miền cho mỗi ứng dụng bạn đăng ký.Facebook Kết nối với một ứng dụng có nhiều tên miền?

Câu hỏi đặt ra là, làm thế nào tôi có thể có nhiều tên miền cho một ứng dụng Facebook đơn, giả sử:

  1. Khi người dùng "Cho phép" các ứng dụng trên một trang web, họ sẽ không phải "Allow" nó trên các trang web khác.

  2. Tốt hơn là, sau lần đăng nhập đầu tiên, người dùng sẽ không thấy cửa sổ bật lên trên mọi trang web mà họ đăng nhập vào (nghĩa là - tôi không muốn mở liên kết tới tên miền của mình và ghi nhật ký -Trong quá trình từ đó).

Vẫn còn làm điều đó?
Nếu không, tùy chọn duy nhất của tôi là quản lý tất cả các đăng nhập từ một tên miền duy nhất và chuyển cookie trở lại tên miền gốc?
Và nếu tôi chuyển cookie giữa các tên miền, làm thế nào tôi có thể chắc chắn rằng Facebook sẽ không chặn loại hành vi này trong tương lai?

Tôi đánh giá cao bất kỳ đề xuất nào, mặc dù tôi muốn có giải pháp chính thức hơn về hack, nếu có thể.

+0

Tôi có cùng một vấn đề và tạo yêu cầu tính năng cho việc này, nếu bạn muốn tham gia, vui lòng nhấp vào đăng ký và "Tôi có thể tạo lại điều này" trên liên kết này: http://developers.facebook.com/bugs/261827430571426 Greetz, Simon – Simon

Trả lời

2

Giả sử bạn đang sử dụng facebook.php bởi Naitik Shah? Tiện ích của bạn sẽ cần phải có trên tất cả các trang của khóa học và bao gồm async script connect-js. Tôi hiện đang tự mình phát triển ứng dụng đăng nhập facebook.

Tôi sẽ nói giải pháp tốt nhất là đăng nhập quá thông qua tên miền của riêng bạn và chuyển cookie. Ứng dụng/tiện ích của bạn sẽ là ứng dụng/tiện ích con duy nhất cho phép chia sẻ thông tin. Không có gì khác nhau trong hoạt động từ một giải pháp trang duy nhất. Tôi dự tính một plugin PHP thực hiện đăng nhập từ một miền bên ngoài và chuyển qua cookie đến trang web thông qua tiện ích. trả lại cookie một cách an toàn như bạn mong muốn (ngoại trừ một cái gì đó tinh ranh như lưu trữ nó trong một div và truy xuất nó ... một cái gì đó mà một hacker có thể cố gắng giả mạo). trang web sau đó sẽ sử dụng cookie cho mục đích tài khoản và id người dùng và tiện ích con sẽ kiểm soát tất cả các hành động đăng nhập và tìm phiên bằng cách sử dụng tập lệnh async (nhưng được định tuyến thông qua một tên miền khác).

Xin lỗi tôi không thể giúp đỡ nhiều hơn nhưng đây là giải pháp duy nhất tôi có thể nghĩ đến, và có vẻ như bạn đã từng làm.

Trong điều khoản giữ kiểm soát phiên trên các tên miền khác nhau, bạn chỉ cần cookie của bên thứ ba hoạt động. Khi trang của bạn được kích hoạt cho miền của bạn, bạn sẽ có cookie cho tên miền đó nếu bạn chưa đăng xuất hoặc chưa hết hạn. Lợi ích của việc sử dụng miền quản lý bên ngoài. Có vẻ như đây cũng là cách đáng tin cậy nhất so với bất kỳ hack thành công nào cho nhiều tên miền, bởi vì tôi sẽ thấy fb và Oauth2.0 là ok với thông tin chia sẻ bên được phê duyệt (cookie) cho một bên khác được chấp thuận bởi bên được phê duyệt. Nhưng .. Nó có thể là vấn đề nếu họ nghĩ rằng người dùng sẽ có vấn đề riêng tư, bởi vì bạn có khả năng có thể chia sẻ cookie trên bất kỳ trang web nào mà không có sự cho phép của người dùng. Vì vậy, bạn phải cẩn thận về việc thông báo cho người dùng về tất cả các trang web mà họ sẽ tự động đăng nhập và xử lý chúng một cách tôn trọng.

Chúc bạn may mắn với điều đó, hy vọng bạn cho chúng tôi biết cách thực hiện.

+0

Không thực sự là những gì tôi đã hy vọng, nhưng cuối cùng chúng tôi đã sử dụng cách tiếp cận này ... – Ofirov

+0

Bất kỳ mã làm việc nào cho @Ofirov này? Tôi bị mắc kẹt trong chuyện này. Đánh giá cao câu trả lời của bạn :-) – Gogol

0

Có kỹ thuật dễ dàng và sạch sẽ -> Đăng nhập Một lần (SSO). Bạn có thể tìm kiếm về nó.

Các vấn đề liên quan