CakePHP

CakePHP2.2のAuthコンポーネント

更新日:

今日は、CakePHP2.1のAuthコンポーネントについて調べてみたいと思います。CakePHPのAuthコンポーネントは、2.0以降、完全に書き直されたみたいですので、どのように変わったのか、調べてみたいと思います。

1. CakePHPであらかじめ用意されている組込プロパティを下記に列記してみます。

  • $ajaxlogin
    ajaxを利用して認証を行うときにビューエレメントの名前を指定します。以前はAjaxを使用するかどうかのboolean(真偽値)でした。
  • $allowedActions
    認証せずに実行できるアクションを配列で指定します。
  • $authenticate
    外部オブジェクトに認証の仕組みがある場合、そのオブジェクトを配列で指定します。

    $this->Auth->authenticate=array(
    'Form'=>array(
    'useerModel'=>'Users.user'
    ));
  • $authError
    認証後に移動する際、表示するメッセージを指定します。

    $this->Auth->authError='ログインをして下さい';
  • $authorize
    複数の認証アダプタを配列で指定することが出来ます。認証チェックが行われたら、それらは逐次チェックします。

    $this->Auth->authorize=array(
     'all'=>array(
     'actionPath'=>'controllers/'
     ),
     'Crud',
     'CustomAuth'
     );
  • $components
    Authコンポーネントによって利用される他のコンポーネントを配列で指定します。
  • $flash
    Session::setFlash()で利用するElementファイル、使用するキー、追加するパラメータを指定します。それぞれデフォルトはElementが'default'、キーが'auth'、追加パラメータが配列となっています。
  • $loginAction
    ログインフォームが設定されているアクションのURLを文字列か配列で指定します。デフォルトは'/users/login'です。

    $this->Auth->loginAction=array(
    'controller'=>'users',
    'action'=>'login'
    );
  • $loginRedirect
    ログイン後に移動するアクション(ページ)のURLを指定します。

    $this->Auth->loginRedirect=arraty(
    'controller'=>'users',
    'action'=>'index'
    );
  • $logoutRedirect
    ログアウト後に移動するアクション(ページ)のURLを指定します。

    $this->Auth->logoutRedirect=array(
    'controller'=>'users',
    'action'=>'logout'
  • $request
    Requestオブジェクトを指定します。
  • $response
    Responseオブジェクトを指定します。
  • $sessionKey
    セッションに認証情報を格納するためのセッションキーを指定します。
  • $userModel
    ログイン情報が格納されているモデルの名前を指定します。デフォルトは'User'です。

    $this->Auth->userModel='User';
  • $userScope
    認証時に'username'と'password'以外のフィールドで条件を付けたい場合に配列で指定します。

    $this->Auth->userScope=array(
    'User.status'=>1
    );
  • $fields
    ログインに必要な情報('username'と'password')と取得するデータ情報のフィールド名を紐づけます。

    $this->Auth->fields=array(
    'username'=>'email',
    'password'=>'passw',
    );

Authコンポーネントのメソッド

Authコンポーネントのメソッドを下記に列挙します。

  • allow(許可するアクション名)
    認証せずに実行可能なアクション名を指定します。指定方法は、配列で指定するか、文字列で指定(複数可)します。尚、何も指定しなければすべてのアクションを許可します
  • constructAuthenticate()
  • constructAuthorize()
  • deny(認証するアクション名)
    実行に認証の必要なアクションを指定します。一度allow()で許可したアクションの許可を取り消す場合にも使用します。
  • flash(メッセージ)
    フラッシュメッセージをセットします。Authコンポーネントのフラッシュの値をセッションコンポーネントで使用します。
  • identify(ユーザ情報,追加条件)
    ユーザーモデルから指定ユーザが存在するかどうかを探し出します。第2引数は、指定ユーザの検索条件を追加する場合に指定します。ユーザー情報が見つかった場合は、パスワード以外の全情報を取得できます。見つからなかった場合はfalseが返ります。
  • initialize(コントローラ)
    Authコンポーネントのコントローラで使用するために初期化します。
  • isAuthorized(ユーザー,リクエスト)
    このメソッドは、ユーザーが指定したリクエストに対して許可されているかどうかを調べるためのメソッドです。 認証済みの場合はtrue、そうで無い場合はfalseが返ります。
  • loggedIn()
  • login($user=null)
    ユーザ情報を元に認証処理を行います。認証に成功した場合はtrueを返します。
  • logout()
    保持していた認証情報を全て破棄し、ログアウト後のリダイレクト先のURLを返します。
  • mapActions($map=array())
    CRUD(作成、読み込み、更新、削除)に対するアクションを連想配列で指定します。 アクション名をキーとし『create』『read』『update』『delete』のいずれかを指定します。これは、ACLを用いる場合の権利設定に影響します。
  • passwored($password)
    指定した文字列(パスワード)からハッシュ化した文字列を生成します。
  • redirect($url=null)
    引数にURLを指定すると認証後のリダイレクト先を指定します。URLを指定しなければ、現在設定されているリダイレクト先を取得します。
  • _sedDefaults()
  • shutdown($controller)
  • startup($controller)
  • user(フィールド名) 
    認証済みのユーザ情報から指定したフィールドを取得します。 フィールド名を省略すると全てのユーザ情報を取得します。

本日は以上です。

-CakePHP
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.