Chrome扩展程序:identity.launchWebAuthFlow存在问题

时间:2015-11-27 08:39:22

标签: authentication google-chrome-extension

我想通过我自己的服务登录。这就是我现在所拥有的:

的manifest.json

"background": {
  "scripts": ["background.js"]
}

background.js

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.create({
        url: 'index.html'
    });
});

index.html 是所有扩展程序逻辑所在的位置。这里我有一个启动身份验证过程的函数:

function goLogin(callback)
{
    var redirectUrl = chrome.identity.getRedirectURL('receiveToken');

    chrome.identity.launchWebAuthFlow({
        url: 'http://todolist.dev/app_dev.php/login?response_type=token&redirect_url=' + redirectUrl,
        interactive: true
    }, function(redirectUrl) {
        if (!redirectUrl) {
            return;
        }

        // Get an access token from the url and save it in localStorage
        var queryString = decodeURIComponent(redirectUrl.substr(redirectUrl.indexOf('?') + 1));
        var params = queryString.split('&');

        var accessToken = null;

        for (var i = 0; i < params.length; i++) {
            params[i] = params[i].split('=');

            if (params[i][0] == 'access_token') {
                accessToken = params[i][1];
                break;
            }
        }

        localStorage.setItem('accessToken', accessToken);

        callback();
    });
}

问题是服务的登录页面有时的弹出窗口没有打开,也没有自动打开和关闭用户不批准访问的响应。有时当弹出窗口打开并且我尝试多次使用错误的凭据登录时,弹出窗口也会自动关闭(使用相同的“您不批准访问”响应)。在后端,我对许多登录尝试没有任何限制。

在后端,我有一个带有重写的AuthenticationSuccessHandler的FOSUserBundle(它执行默认成功处理程序所做的操作+返回访问令牌)。

0 个答案:

没有答案