我正在构建一个chrome扩展程序,它将与我正在构建的Node.js / Restify Web服务进行交互。我使用passport.js为用户创建了几个API端点,并通过Facebook进行身份验证。但是,一旦我运行了chrome扩展程序,我就意识到在尝试通过ajax请求我的Facebook auth端点时会出现各种CORS问题。
在线查看问题后,看起来大多数人都在客户端进行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");
});
如果有人使用这些方法中的任何一种,请告诉我。任何帮助表示赞赏!
答案 0 :(得分:0)
我可以通过在新窗口中打开facebook_login
页面来实现此功能。看起来我现在坚持使用服务器端Facebook登录。