2012-04-01 8 views
2

私はマニュアルを読んだだけですが、ユーザーをログアウトする方法は述べていません。私の問題は、次のようになります。OAuthサーバー側を使用してFacebookログアウト

Facebook JS SDK FB.logout() doesn't terminate user session

しかし、私はサーバーサイドフローを使用しています。私は、クッキーを削除するとユーザーをログアウトするので無効にするクッキーの名前を知る必要があると思いますか?

は、ここで私は、私が変更されている可能性がクッキーの名前を知っていると仮定どこログアウト私です:

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)) 

答えて

1

あなたはFBのうち、ユーザーがログインできない - これはFBクッキーへのアクセス権を持っているあなたを必要とします、あなたはそうしない。

自分のアプリからのみユーザーをログアウトすることができます。

+0

よろしくお願いします。私のアプリからユーザーをログアウトすることは、私がしたいことです。 –

+1

[Facebookのプラットフォームポリシー](http://developers.facebook.com/policy/)に違反しているため、これは答えにはなりません:Item I 6は、「あなたのウェブサイトには明示的な「ログアウト」オプションが必要ですユーザーをFacebookからログアウトします。 –

+0

OPはサーバー側のログアウトを要求しています。 Afaik Facebookはクライアントサイドのjavascriptログアウトのみを提供しています:http://stackoverflow.com/questions/658027/logout-with-facebook –

3

JS SDKを使用しない方法であり、おそらくサーバー側のFB認証を行っている人にとってはおそらく好ましい方法です。https://stackoverflow.com/a/9799430/117989です。 http://developers.facebook.com/docs/authentication/から

に供給

https://www.facebook.com/logout.php? 
    next=YOUR_REDIRECT_URL 
    &access_token=USER_ACCESS_TOKEN 

URLにユーザーをリダイレクトすることによってあなたは、プログラムのFacebookのユーザーをログアウトすることができます

のFacebookのうち、ユーザーのログnextパラメータは、アプリのsettで定義されているアプリケーションと同じ基本ドメインを持つURLである必要がありますings。

関連する問題