我想扩展 Ion Auth 以仅允许某些电子邮件地址注册。
我相当肯定我可以将它破解并得到一些工作,但作为codeigniter和ion auth的新手,我想知道是否有“正确的方法”来做我需要的事情?
例如,我可以“扩展” ion auth(这样我就可以更新 ion auth 核心文件而无需覆盖我的更改?)。
我注意到还有包括这个的钩子(在注册函数中):
$this->ci->ion_auth_model->trigger_events('pre_account_creation');
这些在哪里解决,我可以使用它来拦截来自与我希望注册的列表不匹配的电子邮件地址的注册吗?
如果是这样,我会怎么做?我需要$email
从register()
函数访问变量。
还是只是从 ion auth 更改基本代码而不在将来更新它的情况?
感谢你给与我的帮助。不要担心电子邮件位,我能够确定电子邮件地址是否与所需的电子邮件域匹配,我更感兴趣的是扩展库的最佳方法是什么。
汤姆
编辑:嗨,本,感谢您的回答,并感谢您抽出宝贵时间查看我的问题。不幸的是,这没有帮助。
我猜你想要做的是在 sql 查询中添加一点“where in”子句?我猜这个where in
位不正确,因为没有列名。
此外,此时我无法令人满意地修改 sql 查询以产生所需的输出。例如,我可以将一个钩子添加到一个字面上的函数,$this->db->where('1=1')
并在下一个查询中输出这个 sql:
SELECT COUNT(*) AS `numrows` FROM (`users`) WHERE `1=1` AND `email` = 'rawr@rawr.com'
该AND email = 'rawr@rawr.com'
位将始终不返回任何行。应该是OR email = 'rawr@rawr.com'
,但如果不编辑 Ion Auth 核心代码,我将无法更改它。
我开始怀疑(从最后几个小时的修补)我可能必须编辑 ion auth 核心才能实现这一点。