Работа с просроченным авторизационным токеном android account manager - PullRequest
5 голосов
/ 30 августа 2011

Если я буду аннулировать и запрашивать новый токен каждый раз, когда мне нужно будет сделать запрос с использованием токена Google auth из AccountManager, или есть отметка времени с истекшим сроком действия, которую я могу использовать, чтобы увидеть, все еще действительный.

Ответы [ 4 ]

1 голос
/ 08 февраля 2012

Глядя на ответ HTTP, код состояния - 302 (он перенаправляет вас на предоставление маркера аутентификации), а поле «Set-Cookie» в заголовке - отсутствует .Вы можете отключить это.

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

Если вы не получите этот cookie от Google, значит, пришло время получить новый токен от AccountManager.

1 голос
/ 30 августа 2011

В HTTP-ответе службы Google не указано время истечения, поэтому я думаю, что вам нужно убедиться, что если авторизационный токен не может предоставить доступ, вы используете его в качестве триггера для получения нового аутентификационного токена.Либо вы можете получить новый токен при каждом запуске приложения, либо создать собственный тайм-аут.

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

0 голосов
/ 26 мая 2012

Поскольку пока нет принятого ответа: я делаю это, запуская свои запросы в блоке try, затем перехватываю любые исключения и проверяю, является ли это 401 с if (e.getMessage().equals("401 Unauthorized")) { ... }.Затем аннулируйте токен авторизации, запросите новый и повторите запрос.

0 голосов
/ 30 августа 2011

Вам нужно вызвать invalidateAuthToken (String, String) , когда вы знаете, что токен истек.то есть когда запрос завершается с ошибкой аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...