2015-01-01 15 views
7

私は文書を検索しますが、cakephp 3のACL実装については何も見つかりません。 cakephp 3でACLを使った認証を実装するにはどうすればよいですか?cakephpの認証とACL 3

答えて

4

ACLはCakePHP 2のようにCakePHP 3に組み込まれていません。これは別のプラグインとして利用できるようになりました。 ACL関連のクラスが別のプラグインに移動しhttp://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html

から

引用。パスワードハッシャ、 認証プロバイダと承認プロバイダは、 \ Cake \ Auth名前空間に移動しました。プロバイダと ハッシャをApp \ Auth名前空間にも移動する必要があります。

プラグインはhttps://github.com/cakephp/aclにありますが、まだ安定していないことに注意してください。

3

ダニエル・カストロ氏によると、このプラグインはhttps://github.com/cakephp/aclです。

欠けている部分のようなもので、あなたの「AppController.php」に「のisAuthorized」上書きすることです:ユーザー/アクション/コントローラビットがあることができれば、私はよく知っているだろうよりも賢く

... 
use Acl\Controller\Component\AclComponent; 
use Cake\Controller\ComponentRegistry; 
... 



public function isAuthorized($user){ 
     $Collection = new ComponentRegistry(); 
     $acl= new AclComponent($Collection); 
     $username=$user['username']; 
     $controller=$this->request->controller; 
     $action=$this->request->action; 
     $check=$acl->check($user['username'],"$controller/$action"); 
     return $check; 
    } 

誰かより良い衛生状態。このプラグインの安定性とパフォーマンス面でのaclに対する 'gotchas'についての警告がたくさんあります。

私は1.3実装から切り詰めているので、AppController 'initialize'情報をhttp://book.cakephp.org/3.0/en/controllers/components/authentication.html

から追加すると便利でした