CORS - Facebook - 护照

2024-02-02

我正在尝试在我的 Nodejs/Angular/Express/Passport 应用程序中通过 Facebook 实现 OAUTH 登录,但我对此很挣扎。

我仍然收到 CORS 错误:

XMLHttpRequest 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。起源 'https://www.xxxxxx.net https://www.xxxxxx.net' 因此不允许访问。

虽然我已经添加到我的 EXPRESS ROUTER:

router.all('/*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');

    if ('OPTIONS' === req.method) {
      res.send(200);
    }
    else {
      next();
    }
});

在开发者控制台中,我可以看到“oauth/facebook”GET 调用的标头添加了“Access-Control-Allow-Origin”等。

在回调中没有“Access-Control-Allow-Origin”等 - 这是正确的吗?

router.get('/oauth/facebook/',passport.authenticate('facebook',{
      failureRedirect: '/info',
      scope:['email']
  }));

router.get('/oauth/facebook/callback/', passport.authenticate('facebook',{
      failureRedirect: '/info',
      successRedirect: '/',
      scope:['email']
  }),
  function(req,res){
    if(req.user){
      return res.json({token: req.user.generateJWT()});
    } else {
      return res.status(400).json({message:"Not found"});
    }
});

我在这个设置中遇到了多次失败,导致了这次失败。

首先,您需要使用 href 调用链接“/oauth/facebook/”:

<a href="/oauth/facebook/" class="btn btn-primary"><span class="fa fa-facebook"></span> Login with Facebook</a>

这确保了 Angular 不会处理此请求。

它在服务器端调用此路由: router.get('/oauth/facebook/',passport.authenticate('facebook',{ 失败重定向:'/#!/home', 范围:['电子邮件'] }));

哪些回调:

router.get('/oauth/facebook/callback/', passport.authenticate('facebook',{
      failureRedirect: '/#!/info',
      scope:['email']
  }),
  function(req,res){
    if(req.user){
      return res.redirect(303, '/#!/fb/' +req.user.generateJWT());
    } else {
      return res.status(400).json({message:"Not found"});
    }
});

就我而言,我还需要返回用于登录的令牌:您需要自己处理响应,并将调用重定向到 Angular 一侧自己的“FB”路由,这基本上只是将我的身份验证密钥传递给 Angular 并登录用户。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CORS - Facebook - 护照 的相关文章

随机推荐

  • 如何使用 aria2 保持目录结构?

    我需要同时下载文件 wget 不支持 所以我想尝试 aria2 但我在 aria2 中没有看到保留目录结构的选项 首先确定目录结构 然后构建并使用下载描述文件 aria2c i uri txt where uri txt可能包含 http
  • 关于如何为 Pygments 编写词法分析器的大量文档? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一本字典Stata http stata com 关键字和 Stata 语法的合理知识 我想花几个
  • 为什么 Log4Net 过滤器接收到评估器阈值之外的消息?

    我的 log4net 配置是这样的
  • AttributeError:模块“pydotplus”没有属性“Node”

    我正在尝试根据在 DataCamp 上找到的文章绘制我的决策树 https www datacamp com community tutorials decision tree classification python https www
  • 如何管理A-Frame使用的内存?

    我正在构建一个 Web 应用程序 它将 360 度图像加载到天空基元中 我在用着aframe react 总共有20 张360度的图片 只有一张img里面的资产a assets 一旦用户切换场景反应就会改变src资产的img并且场景将重新渲
  • 用数据填充 JList

    有没有人有关于如何填写的好的教程JList 在一个JPanel 与用户输入的数据 具体来说 我想将人员添加到选定的名册中 这是一个用一个填充它的问题吗 ArrayList 任何帮助将非常感激 创建一个 ListModel 来包装您的 jav
  • 在 Unity 2D 中移动简单对象

    我正在尝试移动一个简单的Object在 Unity 中 但我收到以下错误消息 cannot modify the return value of unityengine transform position because itar is
  • 如何以编程方式创建 SQL Server 视图的 ODBC 链接表并使其可编辑?

    当我使用向导创建到 SQL Server 的 DSN 连接时 我可以将其链接到视图 在这种情况下 Access 将其识别为可编辑表 但是 如果我使用 vba 代码对视图使用无 DSN 连接 方法 1 来自https support micr
  • 阿特金筛

    我一直在尝试学习生成素数的算法 并且在维基百科上发现了阿特金筛法 除了少数几个部分之外 我几乎理解该算法的所有部分 以下是问题 下面的三个二次方程是如何形成的 4x 2 y 2 3x 2 y 2 和 3x 2 y2 维基百科中的算法讨论了模
  • malloc(1) 的对齐要求是什么

    我听说成功调用malloc 返回适合任何类型对齐的指针 然而 要求这样做似乎毫无用处且浪费 malloc 1 返回一个指针 其对齐值大于1因为没有物体大于char可以存储到块中 对齐要求是什么malloc 1 malloc 2 etc 如果
  • 如何检测android内存不足?

    我的应用程序有很多图像 有时会由于内存不足而崩溃 我编写了在开发人员网站上找到的这个函数 public void onLowMemory 但问题是 在内存不足的情况下 这个函数永远不会被调用 我应该怎么做才能调用这个函数 当用户设备内存不足
  • 不再支持 android.useDeprecatedNdk=true

    I try to use OpenCv to build a facetracking camera app but I have a problem when I set up my OpenCv I have this error 我用
  • 如何使用/启用动画图标?

    有谁知道如何在 Angular Web 应用程序中使用 启用材料设计文档中显示的动画图标 https material io design iconography animated icons html usage https materi
  • R 和 scikit-learn 在逻辑回归分类任务中的比较

    我正在做 James Witten Hastie Tibshirani 2013 所著的 R 应用统计学习简介 一书中描述的逻辑回归 更具体地说 我将二元分类模型拟合到第 7 8 1 节中描述的 R 包 ISLR 中的 工资 数据集 预测变
  • 是否可以在 Visual Studio 中加载不匹配的符号?

    我有一个 Windows 小型转储 C 代码 和一个相应的 exe 文件 不幸的是 我没有完全匹配的 pdb 文件 但我确实有 pdb 其中包含在不同时间构建的完全相同的代码 在 Windbg 中 我可以使用 symopt 0x40 告诉它
  • 将双数四舍五入到十分位[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的 float 函数 https stackoverflow com questions 485525 round for float in c 好吧 假设我有电话号码8 47434 我想将其四
  • ts1206 装饰器在这里无效,Angular 2

    我开始编写 Angular 2 程序 但遇到了一个错误 ts1206 装饰器在这里无效 Component ts1206 decorators are not valid here selector my app moduleId modu
  • pandas 在重复 DataFrame.reset_index() 时崩溃

    这里有一个非常奇怪的错误 我正在使用 pandas 来合并多个数据帧 作为合并的一部分 我必须多次调用reset index 但是当我这样做时 它会在第二次或第三次使用 reset index 时意外崩溃 这是重现错误的最少代码 impor
  • 使用 google Sheets api 无需客户端登录

    我有一个从 Google 电子表格中获取数据的网站 我希望我的用户无需登录即可查看获取的数据 这可能吗 如何实现 为了获取和更新工作表数据 我只需要一个帐户 最好在服务器端登录 但是 我还没有看到任何不需要客户端登录的服务器端日志记录 以此
  • CORS - Facebook - 护照

    我正在尝试在我的 Nodejs Angular Express Passport 应用程序中通过 Facebook 实现 OAUTH 登录 但我对此很挣扎 我仍然收到 CORS 错误 XMLHttpRequest 已被 CORS 策略阻止