7

google uygulama motorunda (webapp) python facebook api kullanıyorum. Kullanıcı, uygulamadan çıkış yaptığında kullanıcının çerezini sona erdirmek istiyorum. Bu çerez Javascript Facebook API'sı tarafından ayarlanmaktadır. İşte Uygulama motorunda python kullanarak bir kullanıcının çerezi nasıl silinir?

facebook api fonksiyonu gösteren nasıl facebook API erişim facebook çerez:

def get_user_from_cookie(cookies, app_id, app_secret): 
    cookie = cookies.get("fbs_" + app_id, "") 
    if not cookie: return None 
    args = dict((k, v[-1]) for k, v in cgi.parse_qs(cookie.strip('"')).items()) 
    payload = "".join(k + "=" + args[k] for k in sorted(args.keys()) 
         if k != "sig") 
    sig = hashlib.md5(payload + app_secret).hexdigest() 
    expires = int(args["expires"]) 
    if sig == args.get("sig") and (expires == 0 or time.time() < expires): 
     return args 
    else: 
     return None 

Ben yaparak bu fonksiyonu çağırmak mümkün değilim:

Şimdi
class WelcomePage(webapp.RequestHandler): 
    def getFacebookCookie(self): 
     cookie = facebook.get_user_from_cookie(
           self.request.cookies, app_id, app_secret) 
     accss_token = cookie["access_token"] 
     logging.debug("The access token is %s"%access_token) 

nasıl silebilir/Kullanıcının çerezini sona erdirecek şekilde ayarlansın mı?

Herhangi bir yardım çok takdir edilmektedir. Şimdiden teşekkürler.

cevap

5

Güncelleme: Bu yöntem, kuralı kuran kişi sizseniz işe yarayacaktır ... ancak açıkça kaldırmanız istediğiniz facebook'un çerezini açıkça gördüğünüz bölümü gözden kaçırdım. Bu durumda, bu sorunun cevabı tam olarak ihtiyacınız olan şey gibi görünür: Facebook Oauth Logout

Eğer ilk etapta ayarladığınız bir çerezse, sadece uzun bir süre önce çerezin bitmesini ayarlayabilirsiniz. Cevap başlığınız.

self.response.headers.add_header("Set-Cookie", "access_token=deleted; Expires=Thu, 01-Jan-1970 00:00:00 GMT") 

wikipedia article orijinal çerez olarak aynı üzere alan adı ve yol ayarlamak için emin olun veya muhtemelen çalışmayacaktır.

+0

Teşekkürler, bunu deneyeceğim! Alanı ve yolu nasıl ayarlayabilirim? – Cuga

+0

sadece başlığın eklenmesinin ikinci kısmına ekleyin ... (wikipedia makalesi örneği gösterir: "Domain = docs.foo.com; Path =/accounts;"). – Aaron

+0

Çalışmak için bulamadım ... Yardımınız için teşekkürler, – Cuga