我正在使用passport-facebook通过Facebook验证用户身份。我之前有范围[ 'public_profile', 'email' ]
,但最近添加了user_friends
。
现在,所有现有用户都遇到了一个有趣的问题......他们被迫授予对user_friends的访问权限,取消选中它不会让他们继续登录。
基本上,如果您是新用户,则可以编辑所需的public_profile
权限。您可以拒绝发送电子邮件/ user_friends,继续,除非您使用auth-type: "rerequest"
,否则永远不会再被要求。
但是,如果现有用户登录,则facebook会检查是否已请求范围中的所有项目(在这种情况下user_friends
尚未请求)。然后它显示带有朋友权限的对话框,但隐藏其他2,因为他们已经被问过。 (见附图)。
Facebook要求最初检查public_profile
,但由于它已被授予,因此最终需要现有用户的user_friends
权限。似乎这是Facebook的一个错误...
这是一个截图: