簡體   English   中英

CakePHP中的自定義用戶注冊/登錄和角色/權限?

[英]Customized User Registration/Login and roles/permissions in CakePHP?

在我的應用程序中,需要進行某些修改。 我想在下面列出它們:

  1. 用戶注冊:電子郵件應經過驗證。
  2. 用戶注冊:用戶可以選擇注冊為不同的角色。
  3. 用戶登錄:基於登錄用戶的各種控制器/動作和視圖的訪問控制。

我發現有一個用於電子郵件驗證的插件,然后有用於用戶訪問控制的Acl。 但是我是Cake的新手,當然我對本機會話以及Cookie和令牌(用於電子郵件驗證)感到滿意。 那么,如果我跳過Auth模塊,而贊成$this->Session並編寫一個標記化腳本,那是什么更可取呢? 除了安全性外,使用Auth有什么優勢?

編輯 (另一個問題):在cakePHP中,如果我們使用allow方法:

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

我可以處理對控制器方法的訪問。 但是,如何在用戶表中添加“待處理”列,以便可以通過Auth驗證用戶是否處於待處理狀態? 如果這樣做,我只需要寫驗證電子郵件部分。 還是建議僅使用會話變量“ isactive”檢查會話,並按照上面原始問題中的方法對方法進行檢查?

您可以使用管理員路由(路由前綴)或ACL輕松實現所需的功能。 您必須在電子郵件幫助程序的幫助下編寫電子郵件驗證部分。 對於您的第二個問題:數據庫中可以有一個字段,顯示用戶是否處於活動狀態。 讓我們說這是布爾類型的“活動”。 如果用戶驗證了他的電子郵件,則此值將設置為TRUE。 要僅允許活動用戶登錄,您可以

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

這樣,只有活動用戶才能登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM