android - 谷歌登录/登录 Yandex Android 扩展

标签 android google-chrome-extension google-signin yandex

我想在 Android 上运行我的桌面 chrome 扩展程序,所以我尝试在我手机上的 Yandex 浏览器中运行它。除了谷歌登录外,它运行正常。(在桌面 Chrome 和桌面 Yandex 上一切正常)。 此代码由后台脚本调用:

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:"canceled"。就是这样。

我使用与桌面应用程序完全相同的 list ,具有相同的 clientId、redirectUri 和范围。 我无法弄清楚,是什么导致了这个问题? 如果有另一种方法可以在没有这个问题的情况下执行谷歌登录,它也会有所帮助。

最佳答案

参见 Web Extensions API ...特别是那里的平台支持表。

无论如何,在服务器端启动 oAuth2 流程应该是可能的。

关于android - 谷歌登录/登录 Yandex Android 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53712905/

相关文章:

android - 从商店停用 iOS 和 Android 商店,但使其可重置

android - 加载图片显示加载进度

javascript - 如何将变量传递到全局范围

android - Google api gettoken(Context,String,String) 现已弃用

android - 警报管理器未触发

Android EditText setHint 以编程方式不起作用

google-chrome-extension - Chrome 扩展中的 JavaScript 注入(inject)

javascript - Chrome 扩展程序 : Capture URL of the newest tab opened

model-view-controller - 找不到类型或命名空间名称 'ApplicationUserManager'

android - 没有 google-services.json,Google 服务插件无法运行