복붙노트

[RUBY-ON-RAILS] OmniAuth 전략 페이스 북 NoAuthorizationCodeError ()는`code` 매개 변수 또는 signed_request` 매개 변수`를 통해 서명 요청 (하나를 통과해야합니다 :

RUBY-ON-RAILS

OmniAuth 전략 페이스 북 NoAuthorizationCodeError ()는`code` 매개 변수 또는 signed_request` 매개 변수`를 통해 서명 요청 (하나를 통과해야합니다 :

나는 오류를 얻고있다 :

 OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a 
`code` parameter or a signed request (via `signed_request` parameter or a 
`fbsr_XXX` cookie)):

그 모든 시간이 오지 않아. 그는 에어 브레이크로 통보, 가끔 오는.

이 링크의 많은이 구글 검색에 대한 있지만 적절한 솔루션 .. 사람을 찾을 수 없습니다? 초기화 디렉토리 아래 omniauth.rb :

OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}, :scope => 'user_about_me,email,publish_actions,user_location,publish_stream,offline_access,user_interests,user_likes,user_hometown', :display => 'popup'}      

  OmniAuth.config.on_failure = Proc.new do |env|
    #this will invoke the omniauth_failure action in SessionsController.
    "SessionsController".constantize.action(:omniauth_failure).call(env)
  end         
end

PS : 나는 페이스 북 자바 스크립트 SDK와 페이스 북-omniauth을 사용하고 있습니다

해결법

  1. ==============================

    1.또한 omniauth - 페이스 북과 FB JS SDK를 사용할 때 최근에이 오류가 발생했습니다. 나는 아래 그림과 같이 GET과 signed_request 매개 변수를 전송하여 고정 :

    또한 omniauth - 페이스 북과 FB JS SDK를 사용할 때 최근에이 오류가 발생했습니다. 나는 아래 그림과 같이 GET과 signed_request 매개 변수를 전송하여 고정 :

    $(document).bind("fb.loaded", function() {
      FB.getLoginStatus(function(response) {
    
        console.log('FB STATUS: ' + response.status);
        if(response.status == "connected") {
    
          console.log("FB AUTHED");
    
          location.href =
            '/auth/facebook/callback?' +
            $.param({ signed_request: response.authResponse.signedRequest })
          });
    
        }
      });
    });
    

    이미 사이트 FB에 있지만 로그인 할 때 사용자가 사이트를 방문 할 때 시나리오가 발생합니다. 하나는 종종 omniauth 콜백에 대한 후속 요청에 서명해야합니다 :

    Request URL:
    http://localhost:3000/auth/facebook/callback?signed_request=QXZa2TPs8JiSgSAQkrS7Y7ObPZQDYLcU_JNvD6Wru_o.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUURjQXdZUdVOMEFmd1RCbjRDQWp4eHpKcWRoRllOS1owLVZpa2pKTUQxSU1UbHJzbmEyMVNUUUtOLWl6b1dJOXJVRWUyWTBNd3ViZ1JxcmZJQmVMRDNOREI2M1EwREtqVzJCeVxTU2ZMR1foWlVwOEVlX0dMVUtwYUlqcWlaQ2FSc1h5c0NBNHdyZDBxbk4taU1haWp2cVFIX19QdUhxaldFcUtYZDc1LS1oZmptcTg4QVVuemVJdDJ4S2VOd3VPZG9vOGtaQkZlZmctZ2FDMk9CNl8wZ24iLCJpc3N1ZWRfYXQiOjEzNTg5NzQ4NzMsInVzZXJfaWQiOiIxMDYwMTg4NyJ9`
    

    AJAX를 사용하는 경우, 다음과 같이해야합니다 :

          $.get(
            '/auth/facebook/callback',
            { signed_request: response.authResponse.signedRequest },
            function(json) {
              alert("received logged in response");
          });
    
  2. ==============================

    2.ERROR_CODE = 2102 ERROR_MESSAGE = 사용자 +이다 +하지 + A + 테스트 + 사용자 + 소유 + +로 + 응용 프로그램

    ERROR_CODE = 2102 ERROR_MESSAGE = 사용자 +이다 +하지 + A + 테스트 + 사용자 + 소유 + +로 + 응용 프로그램

    테스트 사용자를 작성 developers.facebook.com에서 응용 프로그램 구성 설정 편집> 개발자 역할을 클릭하고 테스트 사용자 섹션에 생성을 클릭합니다. 사용자를 생성 한 후, 클릭 수정 때 시각화 할 수의 페이스 북 ID를 아래로 암호 설정 및 메모 암호 클릭을 설정합니다. 그런 다음 샌드 박스 모드에서 앱에 로그인에 해당 자격 증명을 사용합니다.

  3. ==============================

    3.단지에 보석을 업데이트하여 내 코드에서이 같은 문제를 해결 :

    단지에 보석을 업데이트하여 내 코드에서이 같은 문제를 해결 :

    gem "omniauth", "~> 1.1.1"
    gem "omniauth-facebook", "~> 1.4.1"
    

    그건 정말 그것의 핵심이었다. 그러나 경우에 당신은, 내 routes.rb 설정을 필요 :

    match "/auth/failure" => redirect("/")
    

    내 omniauth.rb입니다

    OmniAuth.config.on_failure = Proc.new { |env|
      OmniAuth::FailureEndpoint.new(env).redirect_to_failure
    }
    
  4. ==============================

    4.저도 같은 오류가 발생했습니다. 나는 위의 솔루션을 시도했지만 나를 위해 작동하지 않았다. 그때 샌드 박스 모드를 해제하고 그래서 내가 예상대로 일했다.

    저도 같은 오류가 발생했습니다. 나는 위의 솔루션을 시도했지만 나를 위해 작동하지 않았다. 그때 샌드 박스 모드를 해제하고 그래서 내가 예상대로 일했다.

  5. ==============================

    5.페이스 북은 v.2.0에에이 API를 업데이트했습니다 어떤이에 FB 로그인 오류가 발생합니다. 이 솔루션은 개인 정보 보호 정책 페이지를 페이스 북 개발자 사이트에서 앱 세부에서 privay 정책 링크에 링크를 넣어하는 것입니다.

    페이스 북은 v.2.0에에이 API를 업데이트했습니다 어떤이에 FB 로그인 오류가 발생합니다. 이 솔루션은 개인 정보 보호 정책 페이지를 페이스 북 개발자 사이트에서 앱 세부에서 privay 정책 링크에 링크를 넣어하는 것입니다.

  6. ==============================

    6.쿠키 설정되지 않음 : FB.init에 진실하면이 문제가 발생합니다.

    쿠키 설정되지 않음 : FB.init에 진실하면이 문제가 발생합니다.

  7. from https://stackoverflow.com/questions/12370056/omniauth-strategies-facebook-noauthorizationcodeerror-must-pass-either-a-code by cc-by-sa and MIT license