Я пытаюсь запустить настольное расширение Chrome на Android, поэтому я попытался запустить его в браузере Яндекса на своем телефоне.Он работает нормально, за исключением входа в Google. (Все хорошо работает на настольном Chrome и настольном Яндексе).Этот код вызывается фоновыми сценариями:
var url = 'https://accounts.google.com/o/oauth2/auth' +
'?client_id=' + clientId +
'&response_type=id_token' +
'&access_type=offline' +
'&redirect_uri=' + redirectUri +
'&scope=' + scopes;
getIdToken: function (message) {
const _this = this;
var idToken = "";
chrome.identity.launchWebAuthFlow(
{
'url': url,
'interactive': true
},
function (redirectedTo) {
console.log("[2]auth-manager called: "+redirectedTo);
if (chrome.runtime.lastError) {
// Example: Authorization page could not be loaded.
console.log("lastError: "+chrome.runtime.lastError.message);
}
else {
var response = redirectedTo.split('#', 2)[1];
// Example: id_token=<YOUR_BELOVED_ID_TOKEN>&authuser=0&hd=<SOME.DOMAIN.PL>&session_state=<SESSION_SATE>&prompt=<PROMPT>
idToken = (response.split('&')[0]).split('=', 2)[1];
console.log("auth-manager id token", idToken);
if (message != undefined) {
message.data.google_id_token = idToken;
cloudWebSocket.sendMessage(JSON.stringify(message));
_this.isLogged = true;
closePopup();
alert('login successful');
}
}
}
);
}
Когда я вызываю эту функцию, redirectedTo не определен, и я получаю chrome.runtime.lastError.message: «cancelled»,Вот и все.
Я использую тот же манифест из настольных приложений, с тем же clientId, redirectUri и областями действия.Я не могу понять, что вызывает эту проблему?Если есть другой способ выполнить вход в Google без этой проблемы, это также может помочь.