当前,默认情况下,如果我尝试在流星中使用社交登录,则在用户不可用的情况下,它将为用户创建一个新帐户。但是我不想要那个。这是我需要的:
当用户注册时,我需要提供社交注册选项。当用户使用社交帐户进行注册时,它应该返回到应用程序,在该应用程序中,我将为用户提供一个表单以输入其他详细信息。在填写完这些详细信息之前,我不想创建一个帐户。我将从社交帐户中提取姓名和电子邮件。
登录时,如果用户已经连接了社交帐户,则将允许他登录。否则,他必须先注册。
如何在Meteor中实现此行为?
我处理这个问题的方式是 Account.validateNewUser
此函数验证用户并返回true或false。但您可以在流程中添加逻辑。
就我而言,我通过电子邮件检查用户是否存在:
社交登录名(Twitter除外)均使用电子邮件创建用户。
该函数包含一个user
带有用户帐户信息的对象参数。如果使用进行检查Accounts.findUserByEmail(<email>)
,则可以找到该用户是否以前创建过。
在这种情况下,有2种情况:
用户尝试使用密码创建一个帐户,只需返回true,其余的用户创建过程将提示用户该电子邮件已经存在该用户。
如果是社交登录,我将2个用户对象合并为一个,并保持原始状态_id
。然后返回“ true”以通过验证过程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句