在Chrome扩展程序中使用Facebook进行身份验证的最佳方式是什么?

时间:2016-11-16 13:03:37

标签: node.js facebook facebook-graph-api google-chrome-extension restify

我正在构建一个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");
});

如果有人使用这些方法中的任何一种,请告诉我。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我可以通过在新窗口中打开facebook_login页面来实现此功能。看起来我现在坚持使用服务器端Facebook登录。