chrome.identity.launchWebAuthFlow回调返回一个未定义的redirect_url

时间:2017-04-26 00:41:47

标签: javascript facebook google-chrome google-chrome-extension

我正在处理一个非常粗糙的Chrome扩展程序验证问题(“无法加载授权页面。”)。对于上下文,我发布到Chrome商店的插件版本没有这些auth问题,只是我的本地副本遇到了这个问题。

我设置我的后端应用程序来执行FB OAuth2。我正确处理了FB登录,并重定向到“https://.chromiumapp.org/#authentication_token=# {auth_token}& email =#{email}”。这是发生错误的时候。在我的生产扩展中,我从redirect_url(标准)中提取auth令牌并将其嵌入到扩展中。在我的开发扩展(具有相同的代码)中,回调有一个未定义的redirect_url(回调函数中的第一个参数)。以下是逻辑:

chrome.identity.launchWebAuthFlow(
  {'url': requestUrl, 'interactive': true},
  function(redirect_url) {
    if (redirect_url) {
      var queryString = redirect_url.split(/[\#\&]/);
      if (queryString.length > 1) {
        window.tokens = queryString.slice(1).map(function(token){
          return token.split('=')[1];
        });
    }
    var authToken = tokens[0];
    var email = tokens[1];
    if (authToken) {
      ...

    } else {
      ...
    }
  }
);

在上面的代码中,redirect_url作为未定义返回。什么可能导致这个未定义?必须存在一些redirect_url,否则回调甚至不会运行。这是怎么回事?

0 个答案:

没有答案