2016-06-07 15 views
7

Tôi đã xây dựng một nhà cung cấp oauth bằng cách sử dụng django-oauth-toolkit.Bật thông tin đăng nhập oauth với django-allauth nhưng nhà cung cấp tùy chỉnh

Tôi hiện muốn cho phép người dùng ứng dụng khách của tôi đăng nhập thông qua nhà cung cấp này.

Sự hiểu biết của tôi là django-allauth là công cụ lý tưởng cho việc này.

Tôi thấy rằng django-allauth có một thư mục đặc biệt cho mỗi nhà cung cấp, và trong thư mục này có một tệp đặc biệt được gọi là provider.py. Ví dụ: this là thư mục cho nhà cung cấp github.

Tôi có nên tạo thứ gì đó tương tự như thư mục này, đặc biệt cho nhà cung cấp tùy chỉnh của tôi không? Hoặc là có một cách dễ dàng hơn/tốt hơn để làm điều này?

+0

Xin chào! Tôi chỉ bắt đầu một dự án mới và có vấn đề tương tự mà tôi muốn sử dụng django-oauth-toolkit cho nhà cung cấp và django-allauth cho người tiêu dùng. Bạn đã tìm thấy bất kỳ hướng dẫn hoặc tài liệu nào về vấn đề này chưa? – Norak

+0

Không may là :( – Brachamul

+0

Cảm ơn bạn đã trả lời. – Norak

Trả lời

0

Dựa trên những gì tài liệu nói, nó phát hiện ra các nhà cung cấp mới dựa trên INSTALLED_APPS. Vì vậy, bạn sẽ cần một ứng dụng Django có cùng cấu trúc có và bao gồm một providers.py. Vì vậy, bạn sẽ có thể sử dụng một ứng dụng mới hoặc một ứng dụng hiện có.

Đây là từ docs:

Khi một nhà cung cấp hiện tại không hoàn toàn đáp ứng nhu cầu của bạn, bạn có thể thấy mình cần phải tùy chỉnh một nhà cung cấp.

Điều này có thể đạt được bằng cách phân lớp một nhà cung cấp hiện tại và thực hiện thay đổi của bạn tại đó. Nhà cung cấp được định nghĩa là ứng dụng django, do đó, thường tùy chỉnh một ý nghĩa sẽ tạo ra một ứng dụng django trong dự án của bạn, chứa các tùy chỉnh của bạn urls.py, views.py và provider.py tệp. Hành vi nào bạn có thể tùy chỉnh vượt quá phạm vi của tài liệu này.

Ngoài ra, một lưu ý về các nội dung của providers.py file:

Trong file provider.py của bạn, bạn sẽ cần phải tiếp xúc với các nhà cung cấp lớp bằng việc có một thuộc tính cấp module gọi provider_classes với bạn các lớp tùy chỉnh trong danh sách. Điều này cho phép nhà cung cấp tùy chỉnh của bạn được đăng ký đúng cách trên cài đặt INSTALLED_APPS.

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