我想就通过电子邮件激活用户的最有效方式提出一些建议。当用户注册时,我想要创建一个激活码,它将通过电子邮件发送,表示他们需要激活(激活码以域名作为参数以令牌形式发送)。但是,我不知道什么最好的数据库结构来处理这将是...通过电子邮件laravel(5.3)处理用户激活的数据库设置?
简单的选择,我相信,将有在users
表中activation_token
和activated
列,当URL与匹配用户和activation_token
被击中,activated
将变为true /!0。虽然很简单,但我希望在用户表上尽可能节省空间。
或者,我可以制作一个包含user_id, token, activated
的activation
表,并创建users
和activation
之间的一对一关系。在User
型号有:
public function activation() {
return $this->hasOne('App\Activation');
}
public function activated() {
return $this->activation->activated != 0 ? true:false;
}
同样,当令牌参数的URL被击中的用户,更改activated
1 /真。
激活链接和注册确认正被推送到一个队列中,所以我不会过分担心用户可以激活的速度,但更多的时间是用来验证用户的额外时间额外的参数是必需的。
我确定有可能有更好的方法来做到这一点,但在谷歌搜索用户激活laravel 5.3后,结果通常是过时的方法和laravel版本的过时包或教程。除此之外,可用软件包并不特别轻巧,并且具有许多我根本不需要的配置设置,因此不需要,因为当我自己能够做到这一点时,我看不到堵塞的重点。我也不愿意拖过别人的包裹,并删除不必要的批量(根据我的需要)。
那么,任何人都可以请建议一个更好的选择,或支持上述想法之一?