2011-10-07 5 views
0

내 이니셜 라이저/devise.rb는 다음을 사용합니다.omniauth client_options가 facebook으로 전달되는 것을 멈추는 방법?

config.omniauth :facebook, Facebook::APP_ID, Facebook::SECRET, {:scope => Facebook::SCOPE, :client_options => { :ssl => { :ca_file => '/usr/lib/ssl/certs/ca-certificates.crt' }}} 

및 생성 : https://graph.facebook.com/oauth/authorize?response_type=code&client_id=123&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fusers%2Fauth%2Ffacebook%2Fcallback&parse=query&scope=user_about_me%2Cuser_birthday%2Cuser_location%2Cemail&client_options=%7B%3Assl%3D%3E%7B%3Aca_file%3D%3E%22%2Fusr%2Flib%2Fssl%2Fcerts%2Fca-certificates.crt%22%7D%7D

oa-oauth에 대한 전략 파일 facebook.rb는 다음을 보여줍니다 :

 def initialize(app, client_id=nil, client_secret=nil, options = {}, &block) 
    client_options = { 
     :site => 'https://graph.facebook.com/', 
     :token_url => '/oauth/access_token' 
    } 

    options = { 
     :parse => :query 
    }.merge(options) 

    super(app, :facebook, client_id, client_secret, client_options, options, &block) 
    end 

질문 : 값을 전달하여 :client_options을 설정하는 것이 불가능한 것처럼 보이므로 omniauth 위키에이 코드가 표시되는 이유는 무엇입니까? 필자는 FB가 무시 될뿐 아니라 어쨌든 지원되지 않는 경우이 정보가 전선을 통해 전달되는 것을 원하지 않습니다. 그래서 ssl 옵션을 설정하는 방법 또는 그것을 심지어 필요합니까?

답변

0

초기화 도구가 config.omniauth 이니셜 라이저가 허용하지 않았기 때문에 client_options 매개 변수를 제거하기 만했습니다. 그런 식으로 페이스 북에 가치를 전달하지 않습니다.

0

나는 이것이 오래된 것을 알고 있지만, 나는 봤는데, 이것은 첫 번째 결과가 먼저 나왔다.

내 config/env에 facebook.yml 파일이 있습니다. dev에 대해 client_options를 설정하지 않았기 때문에이 오류가 발생했습니다. client_options가 병합되지 않은 경우 client_options를 병합하여이를 해결합니다.

다른 사람에게 도움이되기를 바랍니다.

FACEBOOK = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env] 
config.omniauth :facebook, FACEBOOK['app_id'], FACEBOOK['secret'], { scope:FACEBOOK['scope'] } 
config.omniauth['scope'].merge(client_options:FACEBOOK['client_options']) if FACEBOOK['client_options'] 
관련 문제