2016-03-20 14 views
6

Khi tạo Thông tin xác thực Oauth2.0 API Google trên Google Developers Console, tôi chọn loại ứng dụng "Ứng dụng web"."URI chuyển hướng được ủy quyền" của ứng dụng web của Google Oauth2.0 phải kết thúc bằng miền cấp cao nhất công khai (chẳng hạn như .com hoặc .org)?

Trong trường "URI chuyển hướng được ủy quyền", tôi có thể sử dụng http://127.0.0.1/callback, nó hoạt động tốt cho tôi về phát triển địa phương.

nhưng khi tôi muốn sử dụng Thông tin đăng nhập Google API OAuth2.0 trên máy chủ của tôi (giả sử 99.99.99.99), tôi phải sử dụng http://99.99.99.99/callback như tôi "ủy quyền chuyển hướng URI", nhưng google cho tôi một cảnh báo:

Invalid Redirect: http://99.99.99.99/callback phải kết thúc bằng công miền cấp cao nhất (như .com hoặc .org)

Trừ để ràng buộc một miền cấp cao nhất công máy chủ của tôi, tôi có thể làm gì khác ?

tôi phát triển trong Django và sử dụng oauth2client để đối phó với Google API OAuth2, Vì vậy, có hai bảng "oauth2_authentication_credential", "oauth2_authentication_flowmodel" trong cơ sở dữ liệu của tôi có giá trị chứng chỉ trong đó, tôi sao chép chúng từ localhost của tôi để cắt đứt, nhưng nó không hoạt động.

+0

Nếu bạn có thể sử dụng tên miền giả, ví dụ: yourrealdomain-localhost.com. Thêm miền này vào tệp lưu trữ của Windows và làm cho nó tìm kiếm 127.0.0.1 Vì vậy, bạn có thể nhập miền này trong bảng điều khiển dành cho nhà phát triển của Google. – vee

Trả lời

9

Có văn bản trợ giúp gần "chuyển hướng URI ủy quyền" lĩnh vực, trong đó ghi rõ rằng bạn không thể sử dụng địa chỉ IP công cộng:

ủy quyền chuyển hướng URI

Để sử dụng với yêu cầu từ một máy chủ web. là đường dẫn trong ứng dụng của bạn mà người dùng được chuyển hướng đến sau họ đã xác thực với Google. Đường dẫn sẽ được nối với mã ủy quyền để truy cập. Phải có giao thức. Không thể chứa các đoạn URL hoặc đường dẫn tương đối. Không thể là địa chỉ IP công khai .

127.0.0.1 không được công khai IP, nhưng một loopback, đó là lý do tại sao http://127.0.0.1/callback hoạt động tốt. localhost cũng có thể được sử dụng: http://localhost/callback

Ngoại trừ liên kết miền công cộng cấp cao nhất với máy chủ của tôi, tôi còn có thể làm gì khác?

Bạn có thể sử dụng DNS miễn phí theo http://xip.io/. Vì vậy, đối với IP 99.99.99.99, hãy sử dụng http://99.99.99.99.xip.io/callback. Và nó sẽ được giải quyết đến http://99.99.99.99/callback.

+0

Cảm ơn bạn đã giải thích về loopback và IP công cộng. Tôi cố gắng truy cập http://99.99.99.99.xip.io (phát lại 99,99,99,99 với ip máy chủ thực của tôi), sau đó nó trả về một trang với dòng chữ "Chào mừng bạn đến với nginx trên Fedora!", Đây không phải là trang máy chủ, có điều gì sai không? – GoTop

+0

Tất cả những gì xip.io đang làm là giải quyết tên máy chủ ('99.99.99.99.xip.io' trong trường hợp đó) thành địa chỉ IP được chỉ định trong tên máy chủ đó và không có gì khác. "Chào mừng bạn đến với nginx trên Fedora!" là trang đích mặc định của nginx. Bạn đã triển khai ứng dụng của mình đến một máy chủ và đã cấu hình nó chưa? Bạn có thấy ứng dụng của mình tại http://99.99.99.99 không?Nếu ứng dụng của bạn có thể truy cập tại http://99.99.99.99, thì http://99.99.99.99.xip.io sẽ hoạt động tốt. – polart

+0

Tôi sử dụng CentOS 7 và Nginx trên máy chủ của mình. Tôi có thể truy cập vào dự án Django của tôi ở mức 99,99,99,99. Theo bạn đề nghị, tôi thấy rằng trang với "Chào mừng bạn đến nginx trên Fedora!" là trang 404 của Ngnix của tôi. Nhưng tôi nhận được trang khác nhau khi tôi truy cập 99,99,99,99 và 99,99.99,99.xip.io, Có lẽ có một số misconfig trên tập tin cấu hình Nginx của tôi? – GoTop

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