Я следил за сообщением в блоге. Проверка обратных вызовов из Android-приложений (http://android-developers.blogspot.tw/2013/01/verifying-back-end-calls-from-android.html) для проверки токенов, отправленных клиентами Android на Java.Google ID-токен checker для Java check() return null
Я использую образец кода в сообщении блога с Google Client Library для Java (http://code.google.com/p/google-api-java-client/downloads/detail?name=google-api-java-client-1.17.0-rc.zip&can=2&q=).
Однако метод GoogleIdToken.Payload check(String tokenString)
в образце кода иногда возвращает значение null. Это очень раздражает, потому что я хотел бы использовать payload.getAudience() и payload.getAuthorizedParty(), чтобы предотвратить спуфинг. Если полезная нагрузка равна нулю, возникает NullPointerException.
Как мы можем решить проблему?
Извините, но я не понимаю о предположении try/catch. Я использую следующий код для использования класса Checker в примере кода: \t Checker checker = new Checker (новый String [] {clientID}, аудитория); \t Полезная нагрузка полезной нагрузки = checker.check (токен); \t System.out.println (payload.getAudience()); // NPE Должен ли я окружать этот код с помощью try/catch? – Greenhand
Возможно, вы захотите попробовать. Нажмите https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= <ваш-токен-здесь> и проверьте, действительно ли ваш токен. Если это так, но check() все равно возвращает null, определенно ошибка –
После попытки, я обнаружил, что передаю неправильный идентификатор клиента в Checker. Токен действителен, но check() возвращает null, потому что я передаю неверный идентификатор клиента. Работает ли она по назначению или это ошибка? Если он работает по назначению, я надеюсь, что он может дать более конкретное сообщение. – Greenhand