chrome.identity.launchWebAuthFlow работал для меня.
создать URL-адрес oauth2:
var url = 'https://accounts.google.com/o/oauth2/auth' +
'?client_id=' + clientId +
'&response_type=token' +
'&redirect_uri=' + redirectUri +
'&login_hint=' + email +
'&scope=' + scopes;
Где redirectUri равно https://<your extension id>.chromiumapp.org/oauth2
и должно быть в списке авторизованного URI перенаправления (в консоли разработчика). Я немного постарался, потому что изначально я создал учетные данные «chrome app», и не было опции URI авторизованного перенаправления, поэтому я переключился на учетные данные «web app».
email - текущая электронная почта пользователя. Указание адреса электронной почты помогает пропустить диалог, если пользователь уже дал разрешения.
clientId и области действия необходимо указать вручную, они не будут автоматически извлечены из манифеста.
Затем запустите launchWebAuthFlow:
chrome.identity.launchWebAuthFlow({
'url': url,
'interactive': true
}, function (redirectedTo) {
// check errors and get token from redirect url
});