1

在我的应用程序中,需要进行某些修改。我试图在下面列出它们:

  1. 用户注册:应验证电子邮件。
  2. 用户注册:用户可以选择注册为不同的角色。
  3. 用户登录:基于登录用户的各种控制器/操作和视图的访问控制。

我发现有一个用于电子邮件验证的插件,然后有一个用于用户访问控制的 Acl。但我是 Cake 的新手,当然我对原生会话、cookie 和令牌(用于电子邮件验证)感到满意。那么,如果我跳过Auth模块以支持$this->Session并编写标记化脚本,那么更可取的是什么?除了安全性之外,使用还有什么好处Auth

编辑(另一个问题):在 cakePHP 中,如果我们使用允许方法:

if($this->Auth->user('roles') == 'usertype1') {
            $this->Auth->allow('index', 'add', 'edit', 'delete');
        }

我可以处理对控制器方法的访问。但是我应该如何在用户表中添加“待处理”列,以便我可以使用 Auth 验证用户是待处理还是活动的?如果这样做了,我只需要编写验证电子邮件部分。还是建议只检查会话*使用会话变量“isactive”并对上述原始问题中提出的方法进行检查?

4

1 回答 1

0

您可以使用管理路由(路由前缀)或 ACL轻松实现所需的功能。您必须使用电子邮件助手的帮助编写电子邮件验证部分。对于您的第二个问题:您可以在数据库中有一个字段显示用户是否处于活动状态。让我们说它是布尔类型的“活动”。如果用户验证了他的电子邮件,此值将设置为 TRUE。要只允许活动用户登录,您可以

$this->Auth->authenticate = array(
            AuthComponent::ALL => array(
                'userModel' => 'User',
                'fields' => array(
                    'username' => 'username',
                    'password' => 'password'
                ),
                'scope' => array(
                    'User.active' => 1,
                )
            ), 'Form'
        );

这样只有active才能登录。

于 2013-11-03T10:49:58.490 回答