问题描述
我正在开发的应用程序中有两种类型的用户。 Users
(表users.sql
)用于前端用户,AdminUsers
(表admin_users.sql
)用于管理。
在CakePHP3中,我使用AuthComponent
中的AppController
解决了以下问题:
public function initialize()
{
parent::initialize();
// ...
//user login
if (!empty($this->request->params['prefix']) AND
$this->request->params['prefix'] == 'admin'
) {
$this->setAdminLogin();
}else{
$this->setUserLogin();
$this->Auth->allow();
}
// ...
}
//frontend users
public function setUserLogin()
{
$this->loadComponent('Auth',[
'authorize' => ['Controller'],'loginAction' => [
'controller' => 'Users','action' => 'login'
],'loginRedirect' => [
'controller' => 'Users','action' => 'edit'
],'logoutRedirect' => [
'controller' => 'Users','authError' => false,'authenticate' => [
'Xety/Cake3CookieAuth.Cookie' => [
'usermodel' => 'Users','scope' => ['Users.active' => 1],'fields' => ['username' => 'email','password' => 'password'],],'Form' => [
'usermodel' => 'Users','passwordHasher' => [
'className' => 'Fallback','hashers' => ['Default']
]
],'storage' => ['className' => 'Session','key' => 'Auth.User']
]);
}
//admin users
public function setAdminLogin()
{
$this->loadComponent('Auth','loginAction' => [
'controller' => 'AdminUsers','action' => 'login','loginRedirect' => [
'controller' => 'AdminHelps','action' => 'index'
],'logoutRedirect' => [
'controller' => 'AdminUsers','authenticate' => [
'Form' => [
'usermodel' => 'AdminUsers','scope' => ['AdminUsers.active' => 1],'key' => 'Auth.AdminUser']
]);
}
如何在带有身份验证插件的CakePHP4版本中执行相同的操作?如何创建多用户登录?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)