如何实现Facebook登录时让用户选择已登录的多账号?
解决Facebook登录多账号选择问题
你用prompt: 'consent'无效的原因是Facebook JS SDK不支持这个OAuth标准参数来触发账号选择,得用它专属的参数实现需求。
正确解决方案
把prompt参数替换成auth_type: 'reauthenticate',这个参数会强制弹出账号选择对话框,不管用户之前是否登录过Facebook账号:
window.FB.login(function (response) { let { status, authResponse } = response; if (!authResponse) { // 抛出错误 } else { if (status === "connected") { // 继续流程 } else { // 抛出错误 } } }, { scope: facebookLoginScopes.join(","), auth_type: 'reauthenticate', // 触发账号选择对话框 return_scopes: true, });
补充说明
- 如果需要更严格的强制验证(比如要求用户必须输入密码,即使当前已登录),可以额外添加
force_login: true参数,但这会增加用户操作成本,按需选择即可。 - Facebook的JS SDK有独立的参数体系,并不完全遵循通用OAuth的参数规则,所以得用官方规定的参数来实现对应功能。
内容的提问来源于stack exchange,提问作者ololo
相关产品推荐
相关产品推荐

