1

私のアプリケーションでは、特定の変更が必要です。以下にそれらをリストしようとしています:

  1. ユーザー登録: 電子メールを確認する必要があります。
  2. ユーザー登録 : ユーザーには、さまざまな役割として登録する選択肢が与えられます。
  3. ユーザー ログイン : ログイン ユーザーに基づくさまざまなコントローラー/アクションおよびビューのアクセス制御。

メール検証用のプラグインと、ユーザー アクセス制御用の Acl があることがわかりました。しかし、私は Cake を初めて使用し、ネイティブ セッションと Cookie とトークン (電子メールの確認用) に慣れています。Authでは、モジュールをスキップし$this->Sessionてトークン化スクリプトを作成すると、何がより望ましいでしょうか? Authセキュリティ以外に使用する利点は何ですか?

編集(もう1つの質問):allowメソッドを使用する場合、cakePHPで:

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

コントローラー メソッドへのアクセスを処理できます。しかし、ユーザーが保留中かアクティブかをAuthで確認できるように、ユーザーテーブルに「保留中」列を追加するにはどうすればよいですか? これが完了すれば、確認メールの部分を書くだけで済みます。または、セッション変数「isactive」を使用して*セッションのみをチェックし、上記の元の質問で尋ねられたようにメソッドのチェックを実行することをお勧めしますか?

4

1 に答える 1

0

管理者ルーティング (ルーティング プレフィックス)または ACLを使用して、必要な機能を簡単に実現できます。電子メール ヘルパーを使用して、電子メール検証部分を作成する必要があります。2 番目の質問: ユーザーがアクティブかどうかを示すフィールドをデータベースに設定できます。ブール型の「アクティブ」であるとしましょう。この値は TRUE に設定され、ユーザーは自分の電子メールを検証します。アクティブなユーザーのみがログインできるようにするには、次のことができます。

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

このようにして、アクティブな人だけがログインできます。

于 2013-11-03T10:49:58.490 に答える