2015-04-10 2 views
0

Итак, я получил приложение, которое использует конечные точки облака для подключения к бэкэнду приложения. Он отлично работает на физических устройствах и эму-эмуляторах.ARC - Недопустимые области OAuth2

Тем не менее, когда я пытаюсь проверить подлинность на дуге я получаю следующее сообщение об ошибке в консоли JavaScript

Authentication error Error: Invalid OAuth2 scopes 

со следующим стеком

"Error: Invalid OAuth2 scopes. 
at Error (native) 
at Object.callback (chrome-extension://kanlgeedkacgohmccakppmlicnfgfpnl/_modules/mfaihdlpglflfgpfjcifdjdjcckigekc/gen_index.min.js:36:159) 
at safeCallbackApply (extensions::sendRequest:21:15) 
at handleResponse (extensions::sendRequest:73:7)" 

Ошибка происходит на auth.js: 94 ведьма выглядит следующим образом

/** @private */ 
AuthManager.prototype.handleGetAuthToken_ = function(message) { 
console.log('Authentication requested', message); 

var reply = (function(data) { 
var responseMessage = { 
    namespace: 'androidIdentity', 
    command: 'getAuthTokenResponse', 
    data: data 
}; 
    this.plugin_.postMessage(responseMessage); 
}).bind(this); 

var options = { 'interactive': true }; 
var scopes = this.parseScope_(message.data.tokenType); 
if (scopes.length > 0) { 
options.scopes = scopes; 
} 

// This call will pop up a window to ask user for permission to grant 
// permissions of the given OAuth2 scopes, or declared scopes in 
// manifest.json as a fallback. 
// 
// For non-signed-in Chrome session, this will open up a window to ask the 
// user to sign in to Chrome first. 
PromiseWrap.getAuthToken(options).then(function(token) { 
    console.log('Authentication successful'); 
    reply({token: token}); 
    }, function(error) { 
    console.error('Authentication error', error); // line 94 is here :(
    reply({error: error.message}); 
    }); 
}; 

Я сделал следующие шаги:

1- download zip from arc welder 
2- upload to chrome webstore 
3- get id + "crx_key" from chrome webstore 
4- get chrome key from developer console associated with application 
5- launch arc welder and add oauth key 
6- add metadata "usePlayServices": ["gcm", "plus","location", "maps"],"crx_key":"<KEY FROM WEBSTORE>" 
7- launch app - chose google account - get an oauth exception 

Я не могу получить данные логарифма, все это делает его печать смехотворно быстро, что он не может подключиться, о, и я делаю это на Mac.

Редактировать

Оказывается, что конечные точки используют устаревшую сферу из

https://www.googleapis.com/auth/userinfo.email 

ответ

1

[править]

Cross client authentication пока не поддерживаются АРК. Если приложение запрашивает токен аутентификации для области, такой как «oauth2: server: client_id: 9414861317621.apps.googleusercontent.com: api_scope: resource-1 resource-2», он пока не работает. Вот связанный bug для отслеживания.

[оригинал]

Включили ли вы "Google+ API" на Google Developers Console?

Кстати, вы должны создать клиент Chrome Apps в рамках того же проекта, что и приложение для Android, если вы этого не сделали. Таким образом, вам не нужно снова открывать API.

+0

Спасибо за ответ добрый сэр. Да, у меня это включено, но это не нужно, так как я не использую «https://www.googleapis.com/auth/plus.login» –

+0

Я снова прочитал проблему. Вы используете область «ah» в AccountManager для App Engine? К сожалению, он не поддерживается на ARC, так как это не OAuth. Вот как выполнить двойную проверку: перед строкой «Ошибка аутентификации» должна быть запрошена «Аутентификация», за которой следует запрашиваемая область. – Victor

+0

Данные журнала для этого выглядят следующим образом: Запрошенная аутентификация Объектная команда: данные «getAuthToken»: ObjecttokenType: «аудитория: сервер: client_id: <Идентификатор клиента для веб-приложения>» –

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