Ошибка проверки id_token: неверная подпись токена: в конечных точках облака Google

Я получил конечные точки облака Google, работающие с приложением для Android, и бэкэнд, написанный на движке приложения python. Когда я удалил и переустановил свое приложение во время разработки, я начал сталкиваться с ошибкой 401 из бэкэнда. Это без каких-либо изменений в бэкэнде после того, как я заставил его работать в первый раз. Так,

  1. Я очистил файл debug.keystore в C:\Users\username\.android, а также другие файлы в том же каталоге. Снова восстановил файл debug.keystore и получил новый след sha1.

  2. Удален проект API в консоли приложений Google и восстановлен веб-клиент_id и Android-клиент_ид с ​​новым отпечатком sha1.

  3. Использован новый web client_id и android client_id в коде на стороне сервера.

  4. Также обновлен android cliend_id в области аудитории в коде Android.

После того, как я установил приложение сейчас, все еще вижу ту же ошибку 401. Журналы моего движка приложения показывают это,

I 2013-04-07 16:45:27.297 Checking for id_token.
W 2013-04-07 16:45:27.299 id_token verification failed: Invalid token signature: eyJhbGciOiJSUzI1NiIsImtpZCI6IjMzMTJkNDc0ZWUzNWRjNWU4YzFhMDE4OTkzOGZkN2E3YmUzYmRlZjYifQ.eyJpc3Mi
I 2013-04-07 16:45:27.299 Checking for oauth token.

Мне удалось собрать больше информации на основе ошибки oauth2 конечных точек облака и http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html,

Я расшифровал id_token, отправляемый на сервер app_engine, и обнаружил, что в нем есть следующие поля:

cid = Android app client_id that I registered in app console for 
azp = Android app client_id 
aud = web client_id for App engine 
iss = accounts.google.com
verified_email = true
email_verified = true
email = account i selected in account picker in android app
exp = a datetime having a value in the future 
first_segment = {u'alg': u'RS256', u'kid': u'3312d474ee35dc5e8c1a0189938fd7a7be3bdef6'}

Приведенные выше значения кажутся правильными, но id_verification не работает. Не уверен, почему.


Была проблема снова. Бывает, когда я переустанавливаю свое приложение после удаления. Сервис Cloudend Points выдал ошибку недопустимого токена. Использовал токен и проверил его с помощью URL-адреса. Получите вывод, как показано ниже, что означает, что токен действителен.

"issuer": "accounts.google.com",
"issued_to": "172895167251-1prp5r093hf2nro5bei2cmc1tqf4aasdu.apps.googleusercontent.com",
"audience": "172895167251.apps.googleusercontent.com",
"user_id": "myuserid",
"expires_in": 3086,
"issued_at": 1365644284,
"email": "emailIselectedinadroidapp",
"verified_email": true

person plspl    schedule 07.04.2013    source источник
comment
Кажется, теперь все работает нормально. Я не получаю сообщение об ошибке проверки идентификатора. Я ничего не делал, он просто волшебным образом начал работать. Возможно, это проблема с кэшированием на стороне Google.   -  person plspl    schedule 08.04.2013
comment
Зарегистрирована проблема для этого,code.google.com/p/googleappengine/ проблемы/подробности?id=9188   -  person plspl    schedule 17.04.2013


Ответы (1)