Ошибка Azure: поток проверки подлинности на стороне клиента с Google не поддерживается

Я внезапно начал получать следующую ошибку в своем приложении. Я уверен, что раньше он работал нормально - по крайней мере, на моей машине :-)

Error: Client side authentication flow with Google is not supported.

Я получаю эту ошибку, когда пытаюсь войти в систему, используя accesstoken, полученный мной в результате вызова авторизации gapi:

// login with google using gapi    
gapi.auth.authorize({ client_id: clientId, scope: scopes, immediate: noPopup }, 
     function (authResult) {
         // Pass the accesstoken into azure
         client.login("google",  {"access_token": authResult.access_token}).then(
              function(user) {
                   // logged into azure...

Затем я получаю сообщение об ошибке о неподдерживаемом потоке.

(если я перейду с «google» на «facebook», ошибка будет следующей: Ошибка: запрос авторизации токена доступа Facebook Graph API завершился неудачно с кодом состояния HTTP 400 - что имеет смысл, поскольку я передаю через google accesstoken)

Если я вставлю URL-адрес прямо в браузере, https://kjokken.azure-mobile.net/login/google, то вроде все ок.

Есть идеи, почему это происходит?

Спасибо за любую помощь

Ларси


person Larsi    schedule 08.10.2013    source источник


Ответы (1)


Благодарим вас за использование мобильных служб и за то, что вы нашли время сообщить об этом. Мы активно работаем над добавлением поддержки для этого конкретного сценария в течение следующих нескольких недель, что объясняет, что вы видите. Я обновлю этот пост, когда у нас будет больше информации.

Тем временем, рассматривали ли вы возможность использования MobileServiceClient.login(MobileServiceAuthenticationProvider provider, UserAuthenticationCallback callback)?

Спасибо, -Явор

person Yavor Georgiev    schedule 08.10.2013
comment
хорошо, спасибо за ответ. Я отмечу ответ как принятый, когда вы его обновите. Я не понял, что вы предлагаете использовать обратный вызов. Я не видел это здесь задокументировано: msdn.microsoft.com/en- us / library / windowsazure / jj554236.aspx - person Larsi; 09.10.2013
comment
Извините, я не осознавал, что вы используете JavaScript. Параметр токена является необязательным, поэтому метод входа в систему будет выполнять поток на основе OAuth. Оцените это. - person Yavor Georgiev; 09.10.2013
comment
Хай ... Я пытаюсь глупо войти в систему, когда он во второй раз входит в приложение ... когда я пытаюсь войти в систему с помощью google с помощью метода jToken, я получаю следующее:: Запрос на вход в Google POST должен содержать как код, так и id_token в тело запроса. Есть предложения Явор? - person Demian Flavius; 20.02.2014
comment
Поток, который принимает JToken, по-прежнему не поддерживается, см. здесь. Чтобы включить тихую аутентификацию, вы все равно можете использовать другой поток (используйте метод в моем ответе). После первого успешного входа в систему вызовите _2 _ и надежно сохраните это значение. При следующем запуске приложения используйте setCurrentUser() и не вызывайте _4 _..., который должен работать. - person Yavor Georgiev; 03.03.2014