2010-12-15 5 views
2

Rails3와 승객 및 nginx는 최고입니다!레일/승객과의 Facebook 응용 프로그램/nginx ... 잘못된 URL 콜백!

저는 페이스 북 연결 응용 프로그램을 구축 중이며 인증을 위해 omniauth를 사용합니다.

그리고 Nginx에서 Passenger를 사용하여 신청합니다. 몇 가지 이유로, 나는 응용 프로그램을 실행하기 위해 승객 용 독립 실행 형을 사용하고 싶습니다.

잘 작동하고, 내가 가면 /auth/facebook 페이스 북으로 이동하여 권한을 요청합니다. 그러나 콜백 URL로 이동하면 URL은 예상치 못한 것입니다!

http://xyz.com:12148/auth/facebook/callback 

URL을 포트 번호없이 리디렉션하는 방법을 잘 알고 있습니다. 처리가 잘 진행됩니다!

Nginx의 구성

upstream xyz_upstream { 
    server unix:/tmp/xyz.socket; 
} 
server { 
    listen 80; 
    server_name xyz.com; 
    root /home/deploy/apps/rails3/xyz/public; 
    location/{ 
     proxy_pass http://xyz_upstream; 
     proxy_set_header Host $host; 
    } 
} 

아니라 작품에서 응용 프로그램을, 그러나 이것은 내 유일한 문제입니다!

답변

1

당신은 아마 이것 좀 봐이 있어야합니다

OmniAuth.config.full_host = "http://practicallygreen.com" 

(설정/초기화/omniauth.rb에)

작동합니까 위의 게시 된 링크에서 다음을 사용 Overriding omniauth callback url

1

을 이 작동 방식은 각 환경에서 DOMAIN이라는 전역 변수를 설정하는 것입니다. 모든 환경에서 작동하므로 환경이 바뀔 때마다 변경되거나 중단 될 필요가 없습니다. 내 예 구성/환경/병기 ((설정/환경/production.rb에서)

OmniAuth.config.full_host = DOMAIN 

(설정/초기화/omniauth.rb에서)

이하

DOMAIN = "http://xyz.com" 

이다. rb)

DOMAIN = "http://staging.xyz.com"