我正在构建一个Chrome扩展,它将与我正在构建的Node.js/Restify Web服务进行交互。我使用passport.js为用户创建了一对API端点,并通过Facebook进行身份验证。但是,一旦我运行了Chrome扩展件,我意识到在尝试通过ajax请求我的Facebook auth端点时存在各种CORS问题。在Chrome扩展中使用Facebook进行身份验证的最佳方式是什么?
在网上查看问题后,它看起来像大多数人在客户端进行Facebook身份验证。现在我想,也许我会重写扩展以使用客户端Facebook身份验证,并让所有其他(非Facebook)通过我的Restify API。
我的Facebook的身份验证的端点是这样的:
server.get('/facebook_login/callback', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}), function(req, res, next) {
res.redirect('/', next);
});
server.get('/facebook_login', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}));
而且在扩展中唯一的JavaScript代码是这样的:
document.addEventListener('DOMContentLoaded', function() {
window.open("http://localhost:8080/facebook_login");
});
如果有人已经得到了上述两种方法的工作,让我知道。任何帮助表示赞赏!
_“我意识到存在各种CORS问题”_你需要澄清你的意思。 CORS通常不是扩展的问题。另外,请查看'chrome.identity'。 – Xan
@Xan在更改我的代码以重现CORS错误之后,我意识到只要我在新窗口中打开登录URL,我就不会再使用它们了。此外,'chrome.identity'看起来很有用,所以感谢你的建议。 –