2013-11-16 2 views
0

В Android-клиенте я создаю учетные данные, а затем выбираю учетную запись с помощью AccountPicker и задаю имя учетной записи. В GAE у меня есть параметр User в каждом методе конечных точек. (Я описал это here) Идентификатор клиента Android, идентификатор веб-клиента и аудитория настроены правильно. В конечной точке пользователь не имеет значения null и имеет правильный набор электронной почты. Но когда я вызываю user.getUserId(), я получаю null. Является ли этот пользователь аутентифицированным или нет? ... Это действительно заставляет меня нервничать, чтобы не знать, что ...GAE JAVA Конечные точки с android - я аутентифицирован или нет?

ответ

0

То, что вы описываете, нечетно, и я не знаю, почему вы получаете null, когда вызываете getUserId(), но я бы сказал, да, вы аутентифицированы.

Если вы хотите быть уверенным, вы можете попробовать использовать эту аутентификацию у веб-клиента - я прочитал, что после аутентификации пользователя Android вы автоматически получаете минимальную аутентификацию учетной записи для Интернета. Таким образом, создать минимальный сервлет, который включает следующий код:

UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 

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

0

Это a bug со стороны.

Возможно, есть clunky workaround: сохранить User в хранилище данных и прочитать его.

Смежные вопросы