2012-02-08 3 views
1

나는 페이스 북 자바 스크립트 SDK를 사용하여 클라이언트 측 인증을 구현했습니다. 나는 사용자가 로그인하고 그에 따라 HttpCoontext.Current.User IPrincipal을 설정하면 설정 순서로하여 Application_AuthenticateRequest 이벤트에 FacebookWeb 컨텍스트를 확인합니다.클리어 페이스 북 웹 컨텍스트

나는 데이터베이스에서 사용자를 삭제하면 내가 HttpContext.Current.User.IsAuthenticated이 거짓임을 확인하기 위해 페이스 북 웹 컨텍스트를 삭제하고 싶습니다. 또한 사용자가 내 앱의 권한을 취소하면 Facebook 웹 컨텍스트를 삭제하고 싶습니다. 세션이 더 이상 인증되지 않도록 바로 페이스 북의 웹 컨텍스트를 삭제 - 나는 페이스 북에서 그들을 로그 싶지 않아요.

어떻게 서버 측에서이 작업을 수행합니까?

답변

1

가장 좋은 방법은 fbsr_ {your app id} 쿠키를 수동으로 삭제하는 것입니다. 물론이 작업은 사용자가 앱과 상호 작용할 때만 수행 할 수 있습니다. facebook.com에서 앱을 삭제하거나 인증을 취소하면 다음에 앱을 방문 할 때까지 쿠키를 삭제할 수 없습니다.

string cookieName = "fbsr_" + FacebookApplication.Current.AppId; 
if (Request.Cookies[cookieName] != null) { 
    HttpCookie myCookie = new HttpCookie(cookieName); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

내가 사용중인 사용자 액세스 토큰이 잘못되었음을 나타내는 다시 페이스 북에서 OAuth는 예외를 얻을 때마다 나는이 작업을 수행 : 여기

내가 페이스 북의 C# SDK와 함께이 작업을 수행하는 데 사용하는 일부 코드입니다. 그런 다음 사용자가 다시 인증하도록합니다.

+0

이 방법을 시도했지만 FB.init가 호출 될 때마다 fbsr 쿠키가 다시 만들어지는 것처럼 보입니다. 파이어 버그의 쿠키를 수동으로 삭제하고 새로 고침을해도 다시 돌아옵니다! – reach4thelasers