복붙노트

[RUBY-ON-RAILS] 유증 + Omniauth - 어떻게 함께 추가 매개 변수를 전달하는 방법?

RUBY-ON-RAILS

유증 + Omniauth - 어떻게 함께 추가 매개 변수를 전달하는 방법?

나는 / 사용자 / 인증 / 페이스 북이 페이스 북에 연결하는 부하에 응용 프로그램의 기능이 있습니다. 내가 요청이 어디에서 왔는지 알 수 있어야합니다. 그것은 페이스 북, 또는 단순히 페이스 북으로 연결하기 원하는 기존 사용자에 등록 된 사용자의 여부. 유형에 따라, 반응은 매우 다릅니다.

인증 할 때 어떻게 omniauth에 따라 PARAM을 전달할 수 있습니다. 나는 일을 시도 :

/users/auth/facebook?connect_action=signup_connect_to_facebook

그러나 connect_action의 PARAM은 AuthenticationsController 번호가 생성 쳤을 때 그것을하지 않았다

아이디어? Thansk

해결법

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

    1.같이 PARAMS 옵션 : 당신은을 사용해야합니다

    같이 PARAMS 옵션 : 당신은을 사용해야합니다

    omniauth_authorize_path(:user, :facebook, var: 'value', var2: 'value2' )
    

    나중에 콜백에서 당신은 [ 'omniauth.params'] 해시를 얻을 수 request.env에 액세스 할 수 있습니다! :)

  2. ==============================

    2.요청이 응용 프로그램에서 다른 페이지로 만든 경우에는 request.env [ 'omniauth.origin를'] 검사 할 수 있습니다. Omniauth 자동으로이 변수를 저장합니다.

    요청이 응용 프로그램에서 다른 페이지로 만든 경우에는 request.env [ 'omniauth.origin를'] 검사 할 수 있습니다. Omniauth 자동으로이 변수를 저장합니다.

    여기에 대한 자세한 설명은

    지금까지 사용자 정의 매개 변수를 전달하는 것과 같은, 나는 실패이 작업을 수행하기 위해 노력했다. 해결 방법은 여기에 설명 된대로 공급자에 가기 전에 세션에 저장하는 것입니다.

    이 당신을 도움이되기를 바랍니다.

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

    3.페이스 북의 경우 '상태'매개 변수를 사용하고 당신이 원하는 것을 통과하지만, 인코딩을 잊지 마세요.

    페이스 북의 경우 '상태'매개 변수를 사용하고 당신이 원하는 것을 통과하지만, 인코딩을 잊지 마세요.

    /users/auth/facebook?state=parameter
    

    당신은 URL의 형태로 인코딩 된 JSON으로 매개 변수를 전송하고 다음 콜백을 구문 분석 할 수있다.

  4. from https://stackoverflow.com/questions/6657727/devise-omniauth-how-to-pass-extra-parameters-along by cc-by-sa and MIT license