7

Estoy usando la API de python en el motor de la aplicación de google (webapp). Quiero configurar que las cookies del usuario caduquen cuando el usuario cierra sesión en la aplicación. Esta cookie está siendo establecida por Javascript API de Facebook.¿Cómo eliminar las cookies de un usuario usando Python en el motor de la aplicación?

Aquí se muestra la función API de Facebook cómo el acceso a la API de Facebook facebook cookie:

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 

soy capaz de invocar esta función haciendo:

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) 

Ahora ¿cómo puedo eliminar/configurar la cookie del usuario para caducar?

Cualquier ayuda es muy apreciada. Gracias por adelantado.

Respuesta

5

Actualización: Este método funcionará si usted es el que configuró la cookie ... pero pasé por alto la parte donde dijo claramente que es la cookie de Facebook la que desea eliminar. En ese caso, la respuesta a esta pregunta parece ser exactamente lo que necesita: Facebook Oauth Logout

Si se trata de una cookie que estableció en primer lugar, debería poder establecer que la cookie expire hace mucho tiempo en su encabezado de respuesta. wikipedia article

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

Asegúrese de establecer el dominio y la ruta al igual que la cookie original o es probable que no va a funcionar.

+0

¡Gracias, intentaré esto! ¿Cómo puedo configurar el dominio y la ruta? – Cuga

+0

simplemente agréguelo en la segunda parte de agregar el encabezado ... (el artículo de wikipedia muestra el ejemplo: "Dominio = docs.foo.com; Path =/accounts;"). – Aaron

+0

No pude hacerlo funcionar ... gracias por su ayuda – Cuga

Cuestiones relacionadas