问题标签 [passport-facebook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
751 浏览

node.js - NodeJS + Redis + Express + Passport Facebook 身份验证失败

我对 NodeJS 和 redis 与护照 facebook 的集成有一个问题。这是我的代码:

但是当我通过 facebook 登录时,我找到了正确的用户,使用done(null,oldUser);但我的 ensureAuthenticated() 函数总是错误的......

你有什么想法?

提前致谢 !

编辑: 序列化/反序列化

编辑 2:添加 redis 日志

我不知道为什么我要添加这么多饼干......有什么想法吗?

0 投票
7 回答
27372 浏览

javascript - Passport-Facebook 身份验证未为所有 Facebook 帐户提供电子邮件

我正在使用Passport-Facebook身份验证。

对于某些 Facebook 帐户,我没有得到 email_id,我什至尝试使用如下范围变量,但我仍然无法得到 email_id。

profileUrl : " " 和 ProfileFields : ['','']

0 投票
1 回答
520 浏览

angularjs - PassportJS、Angular 和 jsonwebtokens

我有一个带有 passportjs-facebook auth 的 Express/Angular 应用程序,我正在尝试实现一个基于令牌的系统,以使用 jsonwebtokens 调用我的 api 并避免会话/cookie。

我想到的过程如下:

  1. 匿名用户尝试使用 Facebook 登录。
  2. Facebook ID 与数据库进行检查,如果匹配则检索用户,如果用户不存在则创建新用户。
  3. 为该用户生成一个令牌。
  4. 向用户发送令牌
  5. Angular 应用程序获取令牌并将其存储在 localStorage 中。
  6. Angular 应用程序上的拦截器会检查用户的令牌,并将其发送到标头以进行任何后续调用。

我在第 4 步和第 5 步中苦苦挣扎,我不确定如何传递令牌并将其放在我的 Angular 应用程序中。谁能指出我正确的方向来让它发挥作用?

0 投票
1 回答
86 浏览

facebook - 限制 Facebook 上的权限

使用 node.js、mongodb、express 开发应用程序并使用护照在 facebook 上验证用户,我想知道我是否可以限制“默认权限”以登录 facebook,

这是调用 facebook API 的函数

在此请求之后,facebook API 会回复一条建议消息:

MyAPP 将收到您的以下信息:公开个人资料和好友列表。

我只想要公开个人资料而不想要朋友列表。

所需消息:

MyAPP 将收到您的以下信息: public profile

0 投票
1 回答
173 浏览

sails.js - SailsJS:将 Facebook 应用程序机密传输到 local.js 文件

我在我的应用程序中使用 Sails + Passport 进行 Facebook 身份验证。

我有一个中间件文件包含:

由于该应用程序是开源的,我不想在 GitHub 上公开客户端密码。
Sails 文档建议使用 git 忽略的 local.js 文件。

我不知道如何将值从 local.js 文件中取回给这个函数。
任何帮助都感激不尽。

完整代码在 GitHub 上:https ://github.com/ronenteva/MySkills/blob/master/config/passport.js

0 投票
1 回答
1622 浏览

node.js - 为移动应用程序进行 facebook 登录的正确方法是什么(使用 node.js/passport.js 服务器)

我有一个与后端服务器一起使用的移动应用程序,我想了解使用 facebook 登录(创建帐户)然后保持整个系统同步的最佳实践。

到目前为止,这是我所了解的: - 移动应用程序可以在设备上登录并获取 access_token - 可以将访问令牌传输到服务器。我使用与某些 api.myhost.com/auth/facebook 路由挂钩的 passport-facebook-token 进行了概念验证,看来我可以验证用户身份并检索他的 FB 数据。因此,我可以将他与我数据库中的现有用户进行匹配,也可以创建一条新记录。

我不明白的是:1)我必须使用 https 将 FB 令牌传输到我的服务器吗?

2)我应该为我的其他应该经过身份验证的请求做什么。我不认为每个请求都去 FB 是一种选择。想到的一个选项是生成另一个(我自己的)访问令牌并作为 FB 身份验证的结果返回它。

最简单的方法是使用 passport-facebook-token 会话(以便 cookie 会话 ID 可以序列化和反序列化为用户 ID)。但这意味着我需要为会话维护一些 KV 存储。

另一种方法是为该用户生成我自己的随机令牌,在成功登录时将其与用户 ID 一起返回,将其存储在用户记录中,并让来自客户端的每个 API 调用提供此 ID/令牌对并每次手动重新验证它们依靠护照。或者也许依靠护照本地策略?

哪一个更好?各有什么优缺点?

2) 如果我确实打算使用 FB 令牌发布到 FB 并进行图形分析(朋友等),我计划将令牌存储在服务器上。我需要多久刷新一次?每次应用程序启动并刷新客户端上的令牌时,我是否应该使用新的 FB 令牌重新对服务器进行身份验证?通过服务器到服务器调用刷新用户 FB 令牌怎么样?如果我想保持对用户的 FB 数据的访问,但用户停止使用我的或太不频繁地使用它,我应该这样做吗?

是否有任何运作良好的工作计划食谱?

谢谢!

0 投票
2 回答
936 浏览

node.js - 在passportjs中处理服务器超时

我遵循 Passport js page 中给出的代码示例。

});

});

但是我面临一些我自己的服务器问题,这需要很长时间,然后在身份验证后显示网关超时问题。

我试图在从 FB 进行身份验证后立即从我的服务器显示一条消息(例如“正在处理请求。请稍候”),而需要 2 分钟的时间才能达到网关超时。

但是失败了。有人可以帮忙吗

0 投票
0 回答
82 浏览

javascript - 如何将passport-facebook用于同一服务上的多个应用程序?

我已经像这样使用passport-facebook设置了我的facebook登录

我的路线是这样的:

问题是,我在该服务上运行了不止一个应用程序,我希望所有应用程序都使用 facebook 进行身份验证,但我希望每个应用程序都查询并保存到不同的 db ,这意味着不同的User模型。

我可以User通过路由调用传递它(the)吗?我可以启动多个“facebook 登录”并为每个应用使用不同的登录吗?

0 投票
1 回答
2915 浏览

passport.js - 在passport.js中进行Oauth身份验证后返回accesstoken

我想在我的应用程序中使用以下流程

  1. 用户选择通过 google 进行身份验证
  2. 我重定向到谷歌并获得回调(这使用 Passport 发生)

我现在想以响应用户的形式返回一个特定于我的应用程序的身份验证令牌。

我确实得到了成功回调,但我不知道如何从回调函数返回自定义访问令牌/响应。

我猜答案与使用 done() 或序列化或反序列化有关,我从文档或任何示例中都不清楚。您能否还解释一下 done() 或序列化或反序列化是如何使用的。

0 投票
1 回答
395 浏览

express - Express.js 使用 passport-facebook - TypeError: Object 302 has no method 'indexOf'

我已经有一个快速项目正在运行,我只是想用护照连接它以通过 facebook 进行身份验证,我基本上从这里的 github 页面复制了示例:

https://github.com/jaredhanson/passport-facebook

但是,每当我尝试访问我的应用程序中的“/auth/facebook”URL 时,都会出现以下错误: