방금 설명서를 읽었지만 사용자를 로그 아웃하는 방법은 설명하지 않았습니다. 내 문제는이 유사합니다OAuth 서버 측을 사용한 Facebook 로그 아웃
Facebook JS SDK FB.logout() doesn't terminate user session
하지만이 서버 측 흐름을 사용하고 있습니다. 쿠키를 삭제하면 사용자를 로그 아웃 할 것이므로 무효화 할 쿠키의 이름을 알아야한다고 생각합니다. 이 FB 쿠키에 대한 액세스 권한을 필요로 - 당신은 FB에서 사용자가 로그인 할 수 없습니다
class FBLogoutHandler(webapp2.RequestHandler):
csrf_protect = False
def get(self):
logging.debug('in fblogout')
current_user = main.get_user_from_cookie(self.request.cookies,
facebookconf.FACEBOOK_APP_ID,
facebookconf.FACEBOOK_APP_SECRET)
if current_user:
graph = main.GraphAPI(current_user['access_token'])
profile = graph.get_object('me')
accessed_token = current_user['access_token']
logging.debug('setting cookie')
self.set_cookie('fbsr_' + facebookconf.FACEBOOK_APP_ID, None,
expires=time.time() - 86400)
self.redirect('https://www.facebook.com/logout.php?next=http://www.koolbusiness.com/fbredirect&access_token=%s'
% accessed_token)
def set_cookie(
self,
name,
value,
expires=None,
):
if value is None:
value = 'deleted'
expires = datetime.timedelta(minutes=-50000)
jar = Cookie.SimpleCookie()
jar[name] = value
jar[name]['path'] = '/'
if expires:
if isinstance(expires, datetime.timedelta):
expires = datetime.datetime.now() + expires
if isinstance(expires, datetime.datetime):
expires = expires.strftime('%a, %d %b %Y %H:%M:%S')
jar[name]['expires'] = expires
self.response.headers.add_header(*jar.output().split(': ', 1))
감사합니다. 사용자가 내 앱에서 로그 아웃하는 것을 원하는대로 할 수 있습니다. –
[페이스 북의 플랫폼 정책] (http://developers.facebook.com/policy/)을 위반하기 때문에 답변이 될 수 없습니다 : 항목 6은 '귀하의 웹 사이트는 명시 적으로'로그 아웃 '옵션을 제공해야합니다 페이스 북에서 사용자를 로그 아웃한다. ' –
OP가 서버 측 로그 아웃을 요청합니다. Afaik Facebook은 클라이언트 측 자바 스크립트 로그 아웃만을 제공합니다 : http://stackoverflow.com/questions/658027/logout-with-facebook –