2010-12-05 2 views
2

Facebook Connect를 사용하여 여러 프런트 엔드 클라이언트가있는 응용 프로그램을 싱글 사인온 솔루션으로 작성했습니다.Facebook Connect 세션 확인

이러한 클라이언트 중 하나는 예를 들어 iOS 플랫폼에서 실행되므로 모든 fb 인증은 iOS Facebook SDK를 통해 클라이언트에서 발생합니다. 그러나 사용자가 클라이언트에서 인증 한 후에는 Facebook에 로그인하여 Google 사이트에 로그인 했으므로 서버가 클라이언트의 인증 데이터를 가져 와서 확인해야합니까?

답변

1

Javascript SDK를 사용하여 FB.getSession()을 호출하여 다양한 auth 관련 비트가있는 JS 객체를 가져옵니다. 이 중 'access_token', 'expires', 'secret', 'session_key', 'uid'및 'sig'를 서버에 전달하십시오. 호출이 확실한 경우 서버 측에서

는 "access_token은 = 1290380d9e &이 만료 = 92d903 & 비밀 = e9cj9kd & SESSION_KEY = s49i9i3f & UID = 12345"로 문자열로이 CONCAT, 확인합니다. 그래서 당신은 방금 통과 한 모든 것을 sig.

Facebook developer site에서 얻을 수있는 "앱 비밀"을 연결합니다. 문자열의 MD5 hexdigest (Python import md5; md5.new (foobar) .hexdigest())를 가져 와서 통과 한 'sig'와 동일한 지 비교해보십시오.