问题标签 [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 回答
1041 浏览

node.js - 测试 Passport Facebook 策略 Oauth

我一直在寻找一个可靠的例子,或者指出如何模拟测试 Passport-Facebook 的登录过程的正确方向。完全不知道从哪里开始。

我对任何测试框架持开放态度。

最好的,奥斯汀

0 投票
1 回答
1244 浏览

facebook - 部署到heroku,而不使用护照回调重定向到本地主机

我已经为Heroku部署了一个应用程序,但是一旦您单击“使用 facebook 登录”,您就会被重定向到http://localhost:3000/# =。我尝试了以下方法(第一个是目前的位置):

但是当我部署使用:

或者

它指向 facebook 并出现以下错误:

应用程序配置不允许给定 URL:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。

我错过了一些非常明显的东西吗?

0 投票
2 回答
441 浏览

javascript - node.js 和 passport-facebook 不保存会话

我使用passport-facebook授权没问题,我可以做点什么,我被授权了。但是,如果我关闭页面并打开页面,我是未经授权的。

我能做些什么?我不使用任何数据库进行会话。

0 投票
2 回答
1326 浏览

javascript - 护照facebook身份验证不起作用

我有一个 nodeJS 应用程序(express),它有一个 facebook 登录。我正在使用 passport-facebook 身份验证,此处描述为passport-facebook。几周前我的登录仍然可以正常工作,但现在发生了一些变化。我不确定 Facebook 是否改变了某些东西,或者我是否改变了。我还没有触及任何登录代码,所以我怀疑这是 Facebook 的结果。

这是我的验证码:

基本上,我希望应用程序从应用程序的根目录自动对用户进行身份验证,然后在身份验证后重定向到 /calendar。

症状如下: 如果我尝试转到根目录并且之前没有使用 facebook 登录,那么它将带我进入正常的 facebook 登录屏幕,这是应该的。但是在那个屏幕上,有一个警告:

应用程序配置不允许给定 URL 应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。

我检查了与此相关的所有问题,似乎是因为我没有在 facebook 应用程序配置中正确配置应用程序域和站点 url。但它们应该都很好:应用程序域:localhost,站点 url:http://localhost:3000/

所以我不知道它为什么抱怨它?我没有任何子域。我唯一的路线是:(/,/日历,/日历/事件)。最后的 /calendar/events 路由是 ajax 路由。无论如何,在我输入我的 facebook 凭据并登录后,该页面会将我重定向到一个空页面,网址为:(https://www.facebook.com/login.php?login_attempt=1)。我打开了开发者的工具,在其控制台中看到一条错误消息:

加载资源失败:服务器响应状态为 500(内部服务器错误)

但是,现在我实际上已登录。因为如果我现在转到 root 或 /calendar,它将带我到更正页面并显示我已正确登录。所以显然登录有效,但是重定向和允许的 URL 存在一些问题。我只是似乎不知道是什么以及为什么。我正在使用 mongodDB 作为数据库。

0 投票
2 回答
881 浏览

node.js - 使用护照获取有关 facebook 用户的信息

这是我在 node.js 中的第一步,尤其是在护照中,我遇到了一个非常烦人的问题。我正在尝试让用户使用他的 Facebook 个人资料参加的活动,但无论我尝试什么,它都不起作用。所以我想“好吧,让我们获取其他数据”,但除了基本的显示名称和个人资料图片之外,任何其他尝试(生日、事件、朋友列表等)最终都没有数据。我在过去几天(第一次)尝试了很多使用 Facebook 的 api 并且根本无法弄清楚......这是我最后一次尝试:

关于如何获取和使用用户的朋友列表/事件的任何帮助?

0 投票
0 回答
314 浏览

node.js - 使用护照模块获取 facebook 个人资料事件

我正在尝试让用户参与使用护照模块的未来活动,但我显然遗漏了一些东西。我遵循 Facebook API 并获得了我需要的许可:

但是当我试图打印这样的事件时:

我收到此错误:

我尝试替换namevalue,因为它与照片完美配合,我尝试了许多其他方法,但我根本无法让这个工作......请帮忙吗?

0 投票
1 回答
635 浏览

facebook - Facebook doesn't lookup "cancel_url" in the list of "Valid OAuth redirect URIs"

Initial setup:

My app uses facebook oauth system and has 3 different environments: production, testing and development. I've already listed all 3 valid redirect urls in facebook app's advanced settings (like people do here and here):

Additionally, on basic settings the app has:


What happens so far:

  1. When using production environment, everything's ok.

  2. When on testing or development (both are not located in App domains or Site URL):

    a. When the user logs in to my site and he's already logged in to facebook, everything goes fine.

    b. When the user logs in to my site, but he isn't already logged in to facebook, facebook complains that:

    /li>

More details about the latter case:

  1. Current URL in browser at that moment is (not exactly, I've decoded next and cancel_url parts for clarity):

    /li>
  2. As you may have noticed the redirect_uri and cancel_url domains are totally equal and this value (http://myapp-dev.herokuapp.com) exists in the list of Valid OAuth redirect URIs.

  3. If I manually change here cancel_url to production domain, facebook's error will disappear.

  4. If I manually remove cancel_url parameter completely, the error will vanish also.

  5. If I just ignore the message, enter my credentials and press login button, I will be redirected to https://www.facebook.com/login.php?login_attempt=1 and nothing else happens.


Thoughts:

  1. It seems like facebook simply doesn't check cancel_url to exist in the list of Valid OAuth redirect URIs.

  2. Already mentioned manual hacks are obviously not acceptable for a regular user, so I call for another ideas.

  3. Using different facebook apps corresponding to different environments is also not a good idea ideologically, imho.


Workarounds:

  1. As @CBRoe mentioned in comments: tried to use an own top level domain instead of herokuapp.com (used it as App domains and Site URL value) and it worked. This does not solve the initial question, but is a good workaround.
0 投票
1 回答
69 浏览

javascript - 使用 facebook 护照进行身份验证后,如何正确保存从我的 req 对象返回的用户对象

在使用护照成功认证后,我想将用户对象保存在从 facebook 返回的请求对象中,以便在不同的方法中使用。这样做的目的是在我的链接模式中包含通过同一链接发布的所有不同用户。

流程应如下所示:

  1. 脸书认证
  2. 用户对象存储在某处[我该如何做这部分???]
  3. 链接被点击,被路由到 post 方法,其参数是链接和用户 ID。(如果链接存在,则将用户附加到我的链接架构中定义的用户数组中)

先感谢您!

0 投票
2 回答
799 浏览

javascript - 护照js +facebook +当前用户

在弄清楚如何通过我的 facebook 登录访问当前用户时遇到一些问题。我正在使用passportJS、Node、express。我认为我的“用户”没有保持登录状态,但我无法检查。我会上传我所拥有的,并感谢任何查看它的人 - 非常感谢。

路由.js

护照.js

服务器.js

这是我的第一篇 stackoverflow 帖子,如果我用这种格式侮辱了任何人,请提前道歉。

0 投票
1 回答
35 浏览

passport.js - 如何从 Facebook 获取 passport-facebook 所需的应用相关信息?

http://passportjs.org/docs/facebook,它说:

为了使用 Facebook 身份验证,您必须首先在Facebook Developers创建一个应用程序。创建时,应用程序被分配一个应用程序 ID 和应用程序密钥。您的应用程序还必须实现一个重定向 URL,Facebook 将在用户获准访问您的应用程序后将其重定向到该 URL。

我花了一些时间探索https://developers.facebook.com/(链接到文本中),但我无法立即找到:

  1. 要创建哪种类型的应用程序(“网站”对我来说最明显,但这只是在“对我来说最明显”的级别)。

  2. 在哪里确定您的应用的应用 ID。

  3. 在哪里确定您的应用程序的应用程序密钥。

如何创建/读取这些信息?