我正在使用社交登录插件登录/注册谷歌帐户。如果用户是第一次注册的,我想将他们重定向到"编辑配置文件"页面,这样他们就可以完成他们的配置文件信息;如果他们不是新用户,刚刚登录,我想在成功登录后将他们重定向至主页。如何检查用户是否是新用户?也许我们需要一个像flynsarmy.sociallogin.afterRegister
这样的新活动?我试着听rainlab.user.register
,但在用户注册后它并没有启动。
我现在想到的是,只需从您自己的插件扩展User表(添加额外的列first_time或fist_time_register)中为其分配一个默认值"1"。
我在代码中看到,当它试图通过提供商(谷歌等)找到用户时如果发现,它将返回并登录他,并重定向到成功页面。
如果找不到注册他,请登录他,然后重定向到成功页面。
(问题是它没有注册后事件:(因为它有flynarmy.socialogin.registerUser,但它在注册前激发…)
所以我想每次用户注册时。默认值将设置为1,在下一个请求中,您可以让登录用户检查此列的值,如果它的1重定向到配置文件页面,则当用户在存储中填充配置文件页面时,将此值设置为0,这样下次流将转到成功页面。
更新
我检查了rainlabn.user插件的代码
它将使用Auth::register(..args)注册用户,然后启动事件rainlab.user.register
oc socialogin插件也是如此,但但它将使用Auth::register(..args)注册用户,然后它不会启动rainlab.user.register,而是启动flynarmy.socialogin.registerUser事件,并且它在注册方法之前启动它。
因此,我想在这种情况下,当用户使用oc socialogin插件注册时,rainlab.user.register甚至不会启动。
我希望这将有助于任何问题的评论。