openid-connect - 让用户在使用社交登录登录后为本地帐户添加密码 - Azure AD b2c
问题描述
我有一个使用 Azure b2c 对用户进行身份验证的 Web 应用程序。我想要以下用户体验:
- 用户尝试访问登录后的页面
- 用户被重定向到 azure b2c,并且可以选择使用 facebook 或电子邮件+密码登录
- 如果用户是新用户,他们将只能使用 facebook 登录
- 使用 facebook 登录后,用户还应该创建一个密码,他们可以在未来使用,而不是 facebook
- 如果用户拒绝创建密码,我们需要记住这一点(在 cookie 中?)并且以后不再向用户提供此选项
- 不知何故,如果用户改变主意,我们需要能够在稍后的时间点再次触发创建密码的选项
实现这种流程的最佳方法是什么?可以使用自定义策略在 azure b2c 中构建吗?还是太复杂了?
解决方案
目标
我怀疑这是你的目标:
让用户处于控制之中,这样登录可用性很好,并且可以使用熟悉的凭据
通过后端的稳定用户 ID 识别用户,无论他们使用哪种登录方法,以便您可以随着时间的推移跟踪他们的数据
一个很好的问题是为什么你需要用户有一个默认密码?
登录后行为
我可能会在登录后提示用户“完成他们的个人资料”以启用上述功能。此行为与 OAuth 无关,属于您的应用程序:
- 如果您还没有电子邮件,请提示您发送电子邮件
- 如果电子邮件不存在,请在您自己的数据库中创建用户行
联合登录
Azure AD 具有可以启用此功能的功能。所以通过Facebook登录应该没问题。
用户自行注册
Azure AD 也将支持这一点(我认为)。因此,用户可以按照提示创建自己的帐户——如果这对您的业务有意义的话。
推荐阅读
- python - 我无法理解这行代码的作用?
- python - Anaconda2 ImportError:没有名为 matplotlib.pylab 的模块
- python - 张量流增量嵌套 variable_scope
- android - Kotlin - RecyclerView-android.view.InflateException 项中的 BottomNavigation:二进制 XML 文件第 91 行:膨胀类错误
- powershell - 无法向管理员发送 powershell 电子邮件
- r - 向 R networkD3::sankeyNetwork 中的链接添加渐变?
- python - 将 csv 上传到大查询时添加日期加载字段
- elasticsearch - Elasticsearch - 按术语查找文档,这只是给定查询字符串的一部分
- maximo-anywhere - Maximo Anywhere Eclipse 不显示 Platform 文件夹和平台文件夹 fater 配置的 js 文件
- ios - Swift将tableview排序到单独的部分