Я использую следующее, чтобы получить аутентификацию, доступную для бэкэнд из приложения Android. Это описано здесь https://developers.google.com/identity/protocols/CrossClientAuth.
StringBuffer sb = new StringBuffer();
sb.append("oauth2:server:client_id:");
sb.append(getString(R.string.google_app_id));
sb.append(":api_scope:");
sb.append("profile email");
final String scope = sb.toString();
String token = GoogleAuthUtil.getToken(Activity.this, mAuthAccount, scope);
(mAuthAccount ранее был установлен с помощью AccountPicker.newChooseAccountIntent.)
Вышеприведенный код возвращает код проверки подлинности, который иногда истек. Я хотел бы проверить его на серверах google, но вызывая https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= с возвращенной строкой токена из GoogleAuthUtil.getToken возвращает "недопустимый токен".
Как проверить, что код проверки подлинности не истек, прежде чем я попытаюсь его использовать?
Изменить: возвращаемая строка не является токеном, а авторизационным кодом, который можно обменять с помощью API Google для получения токена. Возвращенная строка начинается с "/4", а не "/1" или "/2", если я правильно помню).
Код не всегда работает (на моем сервере), и я хотел бы иметь возможность проверить, может ли код использоваться или истек.