我正在构建一个使用 Passport 进行 Facebook 登录的 Node js 应用程序。我正在按照 https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/ 上的说明进行操作用于构建流程。
我的应用不需要“电子邮件”和“public_profile”之外的任何权限,并且我使用如下默认身份验证:
app.get('/auth/facebook', passport.authenticate('facebook'));
但是,弹出的 Facebook 登录对话框默认添加“好友列表”(见下面的屏幕截图)。
我还尝试显式添加两个默认权限,如下所示:
app.get('/auth/facebook', passport.authenticate('facebook'), {
scope: ['email', 'public_profile']
});
但是,由于某种原因,仍在请求(或提供?)“user_friends”权限。根据 Facebook 应用程序登录审核政策 ( https://developers.facebook.com/docs/facebook-login/permissions ),询问 user_friends 需要 Facebook 应用程序审核流程。我不确定的是为什么当我不需要并且没有请求时它会自动请求 user_friends 权限。有什么想法吗?
最佳答案
它会自动请求“user_friends”权限,因为“user_friends”权限就像“public_profile”和“email”一样默认获得批准。这意味着您不必提出请求。但是,为了在您的应用程序上线时可用,您必须经过应用程序审核。因此,就像您的情况一样,您不需要它,只是不要将其提交给应用程序审核,并且当您的应用程序上线时,不会向用户请求它。
关于node.js - Passport : Facebook Login asking for user_friends permission by default,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51163240/