我们使用他们的电子邮件地址创建用户。我们向每个用户发送电子邮件,其中包含更改密码 api 的链接changePasswordId
。当用户单击链接时,他将被重定向到更改密码屏幕,在那里他可以设置密码并访问应用程序。这行得通。
但是,现在我们希望允许用户在收到邀请/验证电子邮件后使用他们的社交 Idps 进行注册。在这部分看不到任何 fusionauth 文档。
问题如下
- 如何让用户在验证他们的电子邮件时选择他们的社交 Idp?
- 一个用户可以在 FusionAuth 中为一个应用程序使用不同的 Idps 进行多次登录吗?
- 是否有任何链接 api 将所有外部用户帐户与其 fusionauth 用户帐户链接?
我们期望的流程是:
Invite User -> User clicks link -> User will be presented with set
password and social logins-> User chooses google -> Google
authenticates user and returns token back to fusion auth -> fusion
auth links user's google account with already created (invited) user
account. -> Next time user logs in with google account -> Fusion auth
identifies the user and allows him to access the application.
更新: 让我试着解释一下我们的情况和需求,而不是关注密码设置任务:
我们需要在自定义学校域上设置与基于谷歌的教育帐户相关联的新用户。教师和学生可能有这样的地址first.last@middle.school.com
:我们需要从 Google Classroom 获取班级名册,通过我们的 API 在我们的后端为每个学生初始化帐户,该 API 还为每个学生创建 FusionAuth 用户和应用程序注册。
学校通常不希望孩子们在供应商网站上设置密码。当我们向新的学生群发送帐户确认/验证电子邮件时,理想情况下,他们会被引导到该域的批准和配置方法(可能是 Google、Microsoft、其他 SAML 或密码)。如果在学生提供她的邀请电子邮件地址后我们无法选择显示的确认方法,那么我们可以在同一屏幕上显示多个确认选项,让老师指导学生做出正确的选择。
但总而言之,我们需要避免在学校要求时要求设置密码并支持受邀社交帐户的确认。