페이스 북 앱이 사용자 권한을 요청하고 권한을 요청한 경우 레일즈 앱에 전달 된 signed_request 매개 변수에 필요한 세부 정보가 포함되어 있어야합니다. 그래서 당신이 할 수있는 매개 변수를 디코딩하고 해시 자체에서 페이스 북의 사용자 ID를 잡아입니다. 이 같은
시도 뭔가 :
class ApplicationController
before_filter :inspect_signed_request
protected
def base64_url_decode(input)
input += ('=' * (4 - input.length % 4) % 4)
Base64.decode64(input.tr('-_', '+/'))
end
def inspect_signed_request
encoded_sig, payload = params[:signed_request].split('.', 2)
# decode the data
sig = base64_url_decode(encoded_sig)
data = JSON.parse(self.class.base64_url_decode(payload))
raise data.inspect
end
end
기본적으로 당신에게 서명 요청의 세부 정보를 보여주는, 예외를 발생합니다. 본질적으로, 당신은 단지 그것을 파싱 할 수 있고, 서명 된 요청 FB ID 값을 체크 할 수 있습니다. 없으면 로그인 양식으로 리디렉션하는 코드를 추가 할 수 있습니다.