Как я могу выйти с AndroidAccountManager - PullRequest
4 голосов
/ 28 февраля 2011

я могу войти с Android AccountManager с этим кодом: http://code.google.com/p/google-api-java-client/wiki/AndroidAccountManager

Но я не знаю, как выйти?

Ответы [ 3 ]

4 голосов
/ 28 февраля 2011

Ты не.Когда вы используете встроенную аутентификацию Android, вы проходите аутентификацию, используя имя пользователя и пароль, предоставленные пользователем на панели управления «Аккаунты и синхронизация».Получив эту аутентификацию, вы используете ее для получения токена аутентификации, который вы должны кэшировать и использовать до тех пор, пока он не испортится.

Итак, давайте перейдем к способу доступа к службам Google с помощью "com.google"стиль аккаунта.Вы закончите аутентификацию с помощью AccountManager, когда ваше приложение хочет синхронизировать (вы обязательно должны использовать SyncAdapter для этого).Как только вы аутентифицируетесь, вы получите токен авторизации.это большая строка случайных букв, которая действует как «ключ» при последующих веб-вызовах.Вы сохраните это, и пока это хорошо, вам не нужно будет снова проходить аутентификацию.Итак, хочу пойти, чтобы получить ... скажем, портфель финансов Google.Вы включаете токен как часть заголовка http get.Происходит одно из двух:

  1. Google любит этот токен и использует его (вместо пары имя пользователя / пароль) для аутентификации вас и возвращает данные для вашего запроса.
  2. Google возвращает ошибку http 40x, указывающую, что предоставленный вами токен авторизации не годится.

Последний случай произойдет по двум причинам:

  1. Это слишком старый файл.Google любит, чтобы вы периодически проходили повторную аутентификацию (так же, как вы должны вводить пароль на gmail.com каждую неделю или две, чтобы убедиться, что это все еще вы.) Когда это происходит, аннулируйте токен аутентификации (есть вызов функции) и получитеновый.
  2. Пользователь изменил свой пароль с момента получения токена авторизации.То же самое, за исключением того, что по пути устройство не сможет пройти проверку подлинности, а затем будет жаловаться пользователю, что ему необходимо повторно ввести свой пароль, и до тех пор, пока он не сделает это, вы либо получите токен NULL-аутентификации, либо вызовбудет блокироваться до получения пароля (в зависимости от того, какой вызов функции вы используете для получения токена).

В любом случае вы никогда не выйдете из системы.Вы просто используете сервис с токеном авторизации, который вы получили и кэшировали, пока не перестанете.Подумайте о полученном вами токене аутентификации, как о ключе сеанса, который остается в силе до тех пор, пока вы его используете.

3 голосов
/ 23 мая 2013

Почему бы просто не сделать недействительным ваш текущий токен авторизации, позвонив по телефону

 AccountManager.getInstance().invalidateAuthToken(accountType, currentToken);

AccountManager.invalidateAuthToken Documentation

2 голосов
/ 27 августа 2015

AccountManager clearPassword (Учетная запись)

Из AccountManager:

Забывает сохраненный пароль.Это стирает локальную копию пароля;это не меняет пароль учетной записи пользователя на сервере.Имеет тот же эффект, что и setPassword(account, null), но требует меньше разрешений и может использоваться приложениями или интерфейсами управления для «выхода» из учетной записи.

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