2012-04-01 115 views
2

我剛剛閱讀手冊,但並未說明如何註銷用戶。我的問題是與此類似:Facebook使用OAuth服務器端註銷

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

但我使用了服務器端的流量。我想我需要知道哪些cookie的名稱無效,因爲刪除cookie會將用戶登出不是嗎?

這裏是我退出,我想我知道,可能已經改變了cookie的名字:

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

好的,謝謝,記錄用戶不在我的應用程序是我想要做的。 – 2012-04-02 07:04:57

+1

這不可能是答案,因爲它違反了[Facebook的平臺政策](http://developers.facebook.com/policy/):第6項說'你的網站必須提供一個明確的「註銷」選項,這也是將用戶從Facebook註銷。' – 2012-09-06 15:02:37

+0

OP詢問服務器端註銷。 Afaik Facebook只提供客戶端JavaScript註銷:http://stackoverflow.com/questions/658027/logout-with-facebook – 2012-09-06 15:14:57

3

該方法不使用JS SDK,因此可能更適合做服務器端FB認證的人,我在這裏找到:https://stackoverflow.com/a/9799430/117989

http://developers.facebook.com/docs/authentication/

註銷用戶的Facebook

的可以以編程方式註銷用戶的Facebook通過將用戶重定向到

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

的URL中提供next參數必須是與應用程序設置中定義的應用程序具有相同基本域的URL英格斯。