2012-11-27 28 views
6

Tôi đang sử dụng mạng xã hội-auth với ứng dụng web django của mình. Khi tôi vào/login/facebook trong môi trường sản xuất, người dùng có thể đăng nhập bằng dữ liệu facebook của họ. Tuy nhiên trong môi trường phát triển của tôi khi tôi truy cậpLàm thế nào để đăng nhập bằng facebook trong môi trường phát triển bằng cách sử dụng django social-auth?

http://localhost:8000/login/facebook/, 

tôi nhận được một lỗi nói

An error occurred. Please try again later. 

API Error Code: 191 
API Error Description: The specified URL is not owned by the application 
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

Tôi tin rằng đây là vì miền localhost: 8000. Làm cách nào để khắc phục sự cố này để tôi có thể đăng nhập bằng facebook trong môi trường phát triển của mình?

+1

Xác định một miền tùy chỉnh (tôi sử dụng myapp.com) khi tạo ứng dụng trong Facebook, sau đó thêm nó vào '/ etc/hosts /' tập tin của bạn trỏ đến host nội bộ của bạn '127,0. 0,1 myapp.com'. Điều đó sẽ làm các trick – omab

+0

Tôi không quen thuộc về cách thêm tên miền vào/etc/hosts /. Có một liên kết/hướng dẫn tốt mà bạn muốn giới thiệu không? – sharataka

+0

'man hosts' có tất cả các thông tin cơ bản, nó không thực sự phức tạp, bạn thêm một dòng mới với định dạng ''. – omab

Trả lời

2

Tôi vừa xem câu trả lời cho nó khi đọc tài liệu Heroku/Facebook.

Để làm điều đó, bạn phải tạo một ứng dụng thứ hai và liên kết nó với máy chủ cục bộ của bạn để kiểm tra nó cục bộ.

Bạn có thể tìm thêm thông tin về nó ở đây: https://devcenter.heroku.com/articles/facebook#1-creating-a-development-facebook-app

+0

Tôi đã định cấu hình cài đặt ứng dụng facebook thành URL trang web: http://127.0.0.1:8000/. Miền ứng dụng: (trống). Tôi không chắc chắn về miền ứng dụng vì tôi không thấy bất kỳ điều gì trong liên kết về nó. Đúng không? Khi tôi cố gắng lưu Miền ứng dụng: http://127.0.0.1:8000/, tôi gặp lỗi khi nói "Miền ứng dụng: http://127.0.0.1:8000/ không nên chứa thông tin giao thức. Miền ứng dụng: http: //127.0.0.1:8000/ không phải là tên miền hợp lệ. " – sharataka

+0

Tôi vừa thay đổi một ứng dụng của tôi thành http://127.0.0.1:8000 và nó hoạt động tốt (nó không hoạt động nếu không có http) – Robyflc

2

Giải pháp đơn giản nhất tôi thấy là để sửa đổi các tập tin host để lừa Facebook:

1/Chỉnh sửa các tập tin host

  • Mở/etc/hosts
  • Và thêm dòng này vào cuối: 127.0.0.1 dev.mydomain.com

2/Trong Facebook dev console (https://developers.facebook.com/apps/ *********)

  • Chọn "Thử nghiệm ứng dụng"> "tạo ra một ứng dụng thử nghiệm"
  • Trong "Cài đặt"> "cơ bản" > Thêm miền (dev.mydomain.com) vào trường "Miền ứng dụng".

Xong!

cf: https://groups.google.com/forum/#!topic/django-social-auth/gB1D8ikgUwM

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