假设我在Fusionauth的一个应用程序中有几种类型的用户。其中一个角色为A
的用户可以通过fusionauth标准登录机制进行注册/登录。另一个角色为“ B”的用户可以通过Facebook登录。
具有角色B
的用户将获得角色A
。现在,他同时担任这两个角色。
是否可以通过某种方式允许他同时登录?是否可以向该用户添加注册,以便他可以以标准方式设置登录密码?
答案 0 :(得分:1)
如果我正确理解了您的用例,那么在FusionAuth中肯定可以实现。下图说明了FusionAuth中的关系:
User <--- UserRegistration ---> Application <--- ApplicationRole
| ^
\--------------------------------------/
假设您的用户为joe@example.com
。 Joe可以最初通过Facebook登录,并且可以将FusionAuth配置为为其创建User对象。这称为“创建注册”,并且是Identity Provider配置的一部分。
稍后,如果Joe单击“忘记密码”链接,FusionAuth将向他发送电子邮件,然后他可以设置新密码。
这意味着Joe现在可以随时使用Facebook或他的电子邮件地址和密码登录。
此外,Joe可以具有多个UserRegistration对象。假设您有两个应用程序,一个叫做A
,另一个叫做B
。 Joe首次使用Facebook登录时,如果他登录到应用程序A
,FusionAuth将为他创建应用程序A
的UserRegistration对象,并且该UserRegistration将被授予所有默认的ApplicationRoles用于应用A
。
稍后,如果Joe完成了“忘记密码”工作流程,然后登录到应用程序B
,则可以将FusionAuth配置为在应用程序B
中为Joe创建一个UserRegistration对象,这也将授予Joe应用程序B
的所有默认角色。此配置位于“注册”选项卡上的“应用程序”下。如果您为某个应用程序启用注册,则FusionAuth将为已存在但没有要登录的应用程序的用户注册的用户创建用户注册对象。
最后,您可以使用/api/user/registration
API(https://fusionauth.io/docs/v1/tech/apis/registrations)向Joe授予任何应用程序任何其他角色。