5

웹 응용 프로그램은 JavaScript SDK를 사용하여 Facebook을 통한 로그인을 지원합니다.서버의 Facebook 로그인 확인

Facebook 인증은 클라이언트 측에서 발생합니다. 성공하면 FB.getLoginStatus()가 호출되고 인증 토큰 및 사용자 ID가 서버로 전송됩니다.

웹 응용 프로그램은 Facebook 사용자 ID를 데이터베이스에 저장합니다.

서버가 사용자가 성공적으로 로그인했으며 인증 토큰 및 사용자 ID가 클라이언트 측에 위조되지 않았 음을 어떻게 알 수 있습니까? 페이스 북의 서버에 요청을 보내지 않고도이 유효성 검사를 서버 측에서 수행 할 수 있습니까?

+1

아니요, 액세스 토큰의 유효성을 검사하려면 FB의 서버를 호출해야합니다. – CBroe

+0

마지막으로 해봤으니 까다 롭습니다. 인증 토큰이 유효한지 확인하기 위해 공유 키와 OAuth로 수행 할 수있는 작업이 있다는 것을 기억합니다. –

+0

https://developers.facebook.com/docs/facebook-login/access-tokens/#debug – CBroe

답변

1

위의 내 의견에 따르면, authResponse.signedRequest 매개 변수를 서버에 전달하고 서버 측 서버에 서버 측 요청을 보낼 필요없이 서버에서 해독/검사하여이를 수행 할 수 있습니다.

+0

이해가 안됩니다. - 클라이언트 쪽에서 유효성을 검사하는 경우 서버는 서버를 받으면 유효 함을 어떻게 알 수 있습니까? – markmnl

+0

이것은 얼마 전에 잘못되었지만 메모리에서 나온 것일 수 있습니다. - 페이스 북의 서버에 요청을 보내서 브라우저에서 로그인이 발생합니다. - 페이스 북의 서버는 브라우저가 암호화 할 수없는 authResponse.signedRequest를 반환합니다. - 너 브라우저에서 authResponse.signedRequest를 서버로 전달할 수 있습니다. 서버에서 암호화를 해제하여 유효한지 확인하고 Facebook에서 서명했습니다. –