2011-08-30 36 views

Respuesta

1

No hay tiempo de caducidad en la respuesta HTTP del servicio de Google, por lo que creo que debe asegurarse de que si el token de autenticación no proporciona acceso, lo usa como desencadenante para obtener un nuevo token de autenticación. O puede adquirir un token nuevo cada vez que se inicia la aplicación o crear su propio tiempo de espera.

http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html

-2

es necesario llamar a invalidateAuthToken(String, String) cuando se conoce el token ha caducado. es decir, cuando la solicitud falla con un error de autenticación.

+2

Sí, mi pregunta era más ¿cuál es la mejor manera de averiguar si tu token está vencido? –

1

Al mirar la respuesta HTTP, el código de estado es 302 (le está redirigiendo para que proporcione el token de autenticación) y el campo "Establecer cookies" en el encabezado es no presente. Usted podría cerrar eso.

if (res.getStatusLine().getStatusCode() == 302 && res.getHeaders("Set-Cookie").length == 0) { 
    // we need a new token 
    // invalidate account manager logic here 
} 

no poder conseguir que la cookie de Google parece significar que es hora de tomar un nuevo token de administrador de cuentas.

0

Como todavía no hay una respuesta aceptada: Lo hago al disparar mis solicitudes en un bloque de prueba, luego atrapar las excepciones y comprobar si es un 401 con if (e.getMessage().equals("401 Unauthorized")) { ... }. A continuación, invalide el token de autenticación, solicite uno nuevo y vuelva a intentar la solicitud.

Cuestiones relacionadas