2012-06-10 45 views
6

Tôi chắc chắn nhiều nhà phát triển Django phải gặp vấn đề này khi sử dụng mạng xã hội-auth. Ban đầu khi bạn phát triển nó, bạn muốn thử nghiệm nó trên máy chủ cục bộ của bạn, do đó bạn sẽ chuyển hướng tên miền trong etc/hosts của bạn.django-social-auth: Cách chuyển hướng example.com đến 127.0.0.1:8000?

tôi đến cùng này trong tài liệu:

https://github.com/omab/django-social-auth#facebook

Nếu bạn xác định một địa chỉ URL chuyển hướng trong trang cài đặt Facebook, hãy chắc chắn để không xác định http://localhost:8000 vì nó sẽ không làm việc khi thử nghiệm . Thay vào đó, tôi xác định http://myapp.com và thiết lập ánh xạ trên/etc/hosts hoặc sử dụng dnsmasq.

Từ hiểu biết của tôi, bạn không thể xác định bất kỳ cổng nào trong/etc/hosts.

Do đó việc xác định cụm từ này có:

127.0.0.1  example.com 

vẫn không trúng máy chủ Django tôi chạy tại 127.0.0.1:8000.

Các bạn làm như thế nào?

Cảm ơn,

+1

Nếu bạn chỉ nhập mysite.com vào thanh địa chỉ, nó sẽ sử dụng cổng 80 theo mặc định. Hãy thử 'mysite.com: 8000' –

+0

Ahh cảm ơn không biết điều này. Nhưng tác giả cũng nói: "Thay vào đó tôi xác định http://myapp.com và thiết lập một ánh xạ trên/etc/hosts hoặc sử dụng dnsmasq." Do đó anh ta không thiết lập myapp.com:8000 trong cài đặt facebook. – Houman

+0

Tôi không biết số cổng có đáng kể để xác thực với Facebook hay không, nhưng tùy chọn khác của bạn là chạy Django trên cổng 80, yêu cầu quyền root và cổng đó chưa được thực hiện (ví dụ Apache). –

Trả lời

0

tôi đã giải quyết được vấn đề chuyển hướng bằng cách làm theo các bước ở đây: https://serverfault.com/questions/397364/how-to-setup-named-virtual-hosts-in-nginx

Tóm lại, bạn cần một mục trong/etc/hosts như tôi có ở trên cộng với Proxy nginx giữa.

+0

lưu ý rằng bạn chỉ có thể sử dụng 127.0.0.1.xip.io – jterrace

+0

@Kave, câu trả lời bạn đã đề cập trong câu trả lời máy chủ của bạn có hoạt động không? Tôi thấy trong nhận xét rằng bạn vẫn đang đấu tranh với vấn đề này, hãy cho tôi biết – daydreamer

+0

Daydreamer. Có nó đã làm việc. Chúng tôi đã sắp xếp nó ra trong cuộc trò chuyện. Hiệu quả sai lầm tôi đã làm là xóa dòng 127.0.0.1 MySite.com từ/etc/hosts trước khi tôi thử giải pháp nginx. Tôi không nhận ra tôi cần cả hai. – Houman

0

Cài đặt fiddler. Sau khi cài đặt, hãy chuyển đến công cụ> Máy chủ lưu trữ.

Sau đó, bạn có thể ánh xạ từ 127.0.0.1:8000 để mysite.com

3

Mọi người đều nói, "thêm example.com vào file host của bạn ..." nhưng bỏ qua việc đề cập rằng bạn nên sử dụng example.com: 8000 sau khi khởi động máy chủ. Dưới đây là các bước chi tiết hơn mà làm việc cho tôi:

Trên Linux:

  • mở một terminal
  • sudo gedit (hoặc thay thế gedit với soạn thảo văn bản được lựa chọn)
  • Mở etc/hosts nộp
  • thêm một dòng: 127.0.0.1 example.com (nếu bạn đã có một dòng bắt đầu với 127.0.0.1 bạn có thể để nó - https://serverfault.com/questions/231844/is-it-safe-to-add-additional-127-0-0-1-entries-to-etc-hosts)
  • lưu file
  • bắt đầu máy chủ django dev của bạn - python manage.py runerver
  • mở trình duyệt và truy cập example.com:8000 (điều này cho phép gọi lại chính xác tới google và các trang web khác sẽ không hoạt động với 127.0.0.1 hoặc localhost)
  • Bạn sẽ thấy trang chủ của trang web django của bạn.
  • Chuyển đến trang web xã hội bạn muốn kết nối và thiết lập ID ứng dụng khách của bạn, sử dụng example.com làm tên trang web.Ví dụ: url gọi lại cho google là http://example.com:8000/complete/google-oauth2/
  • Sao chép cài đặt khóa/id thích hợp và dán vào SETTINGS.py
  • Bây giờ máy chủ dev của bạn sẽ hoạt động!

Tôi biết đây là bài đăng cũ hơn, nhưng tôi không thể tìm thấy các bước hoàn chỉnh ở bất kỳ đâu. Vui lòng thêm các giải thích nếu cần thiết vì tôi không phải là chuyên gia về vấn đề này.

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