我正在开发一个电子商务网站,我需要处理应用程序的前端和后端部分 . 因此,我将处理客户登录和管理员用户登录 . 由于这是一个电子商务网站,大多数人建议分别考虑安全性来存储用户和客户 . 如果这不是电子商务类型,我会使用用户组方法并将所有用户存储在单个用户表中并相应地管理权限 .
我的问题是我应该如何在前端和后端使用相同的Ion Auth身份验证库,同时分别保留客户表和用户表 . 您可以理解,问题是使用相同的auth库处理客户和管理会话 .
我认为HMVC也无法解决这个问题 . 目前我正在考虑复制应用程序文件夹或为前端和后端开发两个独立的CI应用程序 .
我对这类应用程序的经验很少 . 任何人都可以指导我走正确的道路吗?提前致谢 .
1 回答
更改ion_auth用于验证“用户”的表可以轻松完成 . 它可以在运行时动态完成 .
用于身份验证的表的名称在配置文件application \ config \ ion_auth.php中使用此行代码定义 .
但是,默认表名可以是您喜欢的任何名称 . 如果在数据库中更改了表'users ' to ' customers'的名称,则将配置文件更改为:
现在客户是用于验证登录的默认表 .
但我们需要两个身份验证表,因此创建另一个用于管理目的的表并命名为“admin_users” .
我们需要做的就是将
$config['tables']['users']
的值更改为'admin_users' . 这将在加载ion_auth库之后但在使用任何ion_auth方法之前完成 . 使更改变得复杂的唯一方法是将ion_auth的配置加载到内存中 .为防止名称冲突,会在ion_auth的配置项集中添加额外的索引 . 因此,在内存中,ion_auth配置项
$config['tables']['users']
实际上是$config['ion_auth']['tables']['users']
. 动态设置新表名时,需要解决此额外索引 .下面是一些处理额外索引并动态更改身份验证表为“admin_users”的代码 .
只有在执行管理功能的控制器中才需要此代码 . 控制器中“客户”不需要发生任何事情,因为这是默认设置 .