2010-02-15 8 views
35

Tôi muốn thực hiện kết nối Facebook đăng nhập cho trang web Django của tôi và tôi đã kiểm tra các ứng dụng đã tồn tại.Django Facebook Connect App Khuyến nghị

Cho đến nay, tôi đã tìm thấy Django-Socialauth, django-socialregistrationdjango-facebookconnect cho mục đích này.

Câu hỏi là câu hỏi nào nên chọn và tôi muốn nghe từ các nhà phát triển khác có kinh nghiệm với bất kỳ ứng dụng nào trong số các ứng dụng này.

Điều quan trọng đối với tôi là ứng dụng đăng nhập Facebook Connect phát độc đáo với @login_required, với hệ thống xác thực mặc định và đăng ký django.

Xin hãy chia sẻ kinh nghiệm của bạn :)

Trả lời

29

Cập nhật (11/26/2013): Tôi đang cập nhật đề xuất của mình. Vì đã có đủ thời gian kể từ khi tôi viết câu trả lời này, tôi khuyên bạn nên python-social-auth hoặc django-allauth làm công cụ tốt nhất cho công việc. Họ là những dự án đang hoạt động với tài liệu và hỗ trợ tốt cho nhiều thứ hơn chỉ là Facebook. Tôi đã thành công sử dụng cả hai.


Tôi đã có may mắn nhất với thích ứng với django-socialregistrationdjango-registration (0,8). Vì bạn đang làm việc với đăng ký django, bạn sẽ phải làm một chút công việc, vì cả ba gói đó đều đảm nhận vai trò của cả việc tạo và xác thực người dùng.

Tôi sẽ giải thích những gì cần phải làm, nhưng bạn đã truyền cảm hứng cho tôi cuối cùng cũng có được phiên bản của mình: hello-social-registration.

Giống như tôi đã ám chỉ, nó tách cung cấp chức năng đăng ký cho chương trình phụ trợ đăng ký django và xử lý tất cả ủy quyền.Tôi đã sử dụng điều này trên ứng dụng gần beta của tôi trong một thời gian bây giờ mà không có vấn đề gì (tôi cũng đưa nó cho một người bạn để sử dụng một vài tháng trước và anh ta đã làm việc đó mà không cần sửa đổi nhiều).

Đó là chắc chắn chưa sẵn sàng để trở thành ứng dụng có thể sử dụng lại plug-and-play, nhưng hy vọng nó sẽ cung cấp cho bạn thông tin chi tiết. :)

+0

Có vẻ tuyệt vời Bryan! Tôi cũng đã bắt đầu làm việc với socialregistration nó hoạt động tốt đẹp. Tôi tự hỏi làm cách nào để có thể truy xuất tên và họ của những người dùng đã kết nối với trang web bằng cách sử dụng kết nối FB? (Xem) Tôi cần điều này vì tôi sẽ lấy tên và họ của họ ở chế độ xem thiết lập và điền vào tên trường đầu tiên và cuối cùng của tài khoản django của họ trong khi lưu người dùng. Cảm ơn! – Hellnar

+0

Tôi đã không nhận được rằng đến nay vào nó, có lẽ tôi nên cố gắng đó tiếp theo. :) Nhưng những gì bạn đang tìm kiếm có thể được tìm thấy tại đây: http://code.google.com/p/django-facebookconnect/source/browse/trunk/django-facebookconnect/facebookconnect/models.py#130 –

+0

Liên kết là bị hỏng, dự án dường như đã chết? – amrox

1

Hi Hãy xem ứng dụng fbconnect rằng chúng ta (trên thực tế, Hernani, một chàng trai trong nhóm của chúng tôi) đặt lại với nhau cho osqa (một bản sao của CNPROG).

Bạn sẽ phải, có thể, tinker một chút để thích ứng với nhu cầu của bạn. Nó làm việc với @login_required trang trí và tiêu chuẩn django.contrib.auth hệ thống, nhưng chúng tôi không sử dụng django-registration.

Ứng dụng của chúng tôi cũng hoạt động với thông tin đăng nhập mở và mật khẩu, nhưng phần openid được kết hợp chặt chẽ với thành phần A & Một hiện tại.

Chúng tôi có thể tách nó mặc dù một thời gian trong tương lai, nếu bất kỳ ai có thể quan tâm đến "bất cứ điều gì đăng nhập" django pluggable ứng dụng hoặc có một cái gì đó tốt hơn - xin vui lòng cho chúng tôi biết.

-2

Tôi đã phát bằng các thư viện dựa trên .NET và thấy chúng bị bực dọc. Facebook dường như thay đổi API của họ thường xuyên, vì vậy nếu bạn không thể tìm thấy một thư viện thường xuyên được duy trì, bạn sẽ thấy rằng bạn sẽ nhận được nửa chừng việc triển khai của mình trước khi bạn nhận ra rằng có những vấn đề nghiêm trọng.

Tôi đã có một số thành công với API javascript mà Facebook xuất bản và duy trì. Trong khi các tài liệu có thể không luôn được cập nhật, tôi thấy rằng tôi vẫn duy trì trong khoảng cách nổi bật của việc thực hiện chính xác (một hoặc hai sự thay đổi cần thiết).

4

Cho đến nay gói thường được sử dụng nhất để xác thực Facebook trong Django là Django Facebook:

https://github.com/tschellenbach/Django-facebook

Nó cũng cung cấp cho bạn truy cập vào các API facebook bằng cách sử dụng bao gồm api khách hàng mở Facebook.

3

Tôi muốn triển khai chức năng "Đăng nhập bằng Facebook" cơ bản trong ứng dụng Django của mình. Tôi không muốn hiển thị cho người dùng một biểu mẫu để điền hoặc yêu cầu cô chọn mật khẩu. Tôi thích làm cho nó liền mạch.

Dựa trên yêu cầu của tôi, django_facebook_oauth là ứng dụng tốt nhất cho tôi. Nó chỉ đơn giản cho phép người dùng đăng nhập bằng facebook và nhận thông tin người dùng yêu cầu ứng dụng Facebook của tôi từ cô ấy (dựa trên Hộp thoại Facebook Auth của tôi). Nó tạo ra một người dùng mới ở Django với email facebook của người dùng, tên người dùng và mật khẩu trống.

Tôi thực sự khuyên bạn nên sử dụng nó.

0

Tôi đã sử dụng django-allauth và django-facebook trên hai dự án khác nhau.

django-allauth thật tuyệt vời và cung cấp hỗ trợ rất tốt cho việc đăng nhập và tạo hồ sơ người dùng. Nó cũng có thể làm việc với các nhà cung cấp auth khác mà tôi không thực hiện.

django-facebook làm việc ra khỏi hộp, nhưng nó chỉ tương thích với Facebook. Nó cũng cung cấp các API đơn giản để tìm nạp những người thích và bạn bè của người dùng từ Facebook trực tiếp vào db, mà tôi thích rất nhiều!

facebook.get_and_store_likes(user) 
facebook.get_and_store_friends(user)