我正在处理一个非常粗糙的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,否则回调甚至不会运行。这是怎么回事?