gpt4 book ai didi

node.js - Passport -facebook-token 与 Passport -facebook

转载 作者:搜寻专家 更新时间:2023-10-31 22:31:19 24 4
gpt4 key购买 nike

对于 node.js 中的社交身份验证,我看到许多项目使用 passport-facebook-token包而不是默认的 passport-facebook .我正在努力(并努力)了解这两个软件包之间的区别和好处 - 以及如何从另一个软件包中选择一个。任何见解表示赞赏。

最佳答案

答案

经过大量阅读后,我相信我已经理解了(至少是基础知识),为了其他人的利益,我在这里分享:

  • passport-facebook 使用OAuth2 — Authorization Code Grant 流程
  • passport-facebook-token 使用 OAuth2 — Implicit Grant 流程

看到这个很棒 article on oauth flows有关其中每一项的详细信息。可以在此 SO post 中找到为这些特定库定制的一些流程图。 .

一般困惑

在进行这项研究时显而易见的一点是,围绕身份验证最佳实践存在很多混淆。许多(也许是大多数)不清楚每个不同的 PassportJS 是什么时候。应使用策略(或流程)。

一些结论:

  • Authorization Code Grant 比隐式流更安全,因为它不直接与用户代理(通常是网络浏览器)共享第三方访问 token 。尽管有许多相反的文章,但只要 SPA 具有“专用服务器端组件”(例如 BFF-API),此将与 SPA 一起正常工作 (就像我正在尝试构建的 nestjs-bff 一样……这就是开始整个调查的首要原因)

  • 隐式授予 表示由于将访问 token 直接暴露给用户代理(通常是网络浏览器)而增加的安全漏洞。用例包括没有服务器端组件的 SPA 应用程序。最近,行业最佳实践已经从隐式授予转向授权代码授予,没有客户端密码,但使用 PCKE(证明 key 代码交换)...但这通常是 recommended for native mobile apps, rather then SPAs .

我的净收入:

如果您的客户端有任何专用的服务器端组件,请使用授权码授予 (passport-facebook) 而不是隐式授予 (passport-facebook-token)

邀请加入!

我希望这能帮助那些遇到与我相同问题的人。如果有人发现我所写内容有任何错误、遗漏或不正确的假设,请指出。

关于node.js - Passport -facebook-token 与 Passport -facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com