我剛剛閱讀手冊,但並未說明如何註銷用戶。我的問題是與此類似: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))
好的,謝謝,記錄用戶不在我的應用程序是我想要做的。 – 2012-04-02 07:04:57
這不可能是答案,因爲它違反了[Facebook的平臺政策](http://developers.facebook.com/policy/):第6項說'你的網站必須提供一個明確的「註銷」選項,這也是將用戶從Facebook註銷。' – 2012-09-06 15:02:37
OP詢問服務器端註銷。 Afaik Facebook只提供客戶端JavaScript註銷:http://stackoverflow.com/questions/658027/logout-with-facebook – 2012-09-06 15:14:57