CakePHP が標準で使える認証システムとしては、ACLがあります。INIベースとデータベースを切り替えることができたり、ユーザのアクセス許可コントロールなどかなり複雑なことができますが、それゆえに設定が面倒だったりします。
こちらで作成しているものは、「少人数で使用するWEBアプリ」なので、一つのユーザ名とパスワードを入れれば入れる、という仕組みのものを試しに作成してみました。
SdAuth.zip
sd_auth.zip
使い方は、
1) sd_auth.php(このファイル)を app/controllers/components に置く。
login.thtml を app/views/layouts に置く。
2) app_controller.php を、cake/appcontroller.php から app/ にコピーして、自分用に書き込めるようにする。
3) そこに以下を追加する。これで、プロジェクト全体が必ずここを通過するようになる。
class AppController extends Controller {
var $components = array('SdAuth');
function beforeFilter()
{
// Auth Check.
if($this->SdAuth->isloggedin() == FALSE){
//$this->layout = “login”;
*$this->layout = '';*
*$this->render('../layouts/login');*
*exit();*
*など。pm11opさん、ありがとうございます。*
*http://pm.11op.net/2007/12/post-28.php*
} else {
$this->layout = "default";
};
}
}
4) ログアウトのリンクをどこかに作成する。どこかの ****s_controller.php に、次のコードを追加。
function logout(){
$this->SdAuth->logout();
$this->redirect("/index.php");
}
これで、ログインしないと使えないWEBシステムを簡単に作成できます。
これはモジュールとして作成したので、どんなプロジェクトにも使いまわすことができます。
こういういろいろな人の書いた Tips 集のようなものが、cakephp.org にある「スニペット」です。
http://cakeforge.org/snippet/
上記のURLに、いろいろ便利 Tips があります。
2006年07月05日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/20317502
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
PHP/CakePHP
Excerpt: Tag: PHP CakePHP マニュアル サンプル phpMyEdit WYSIWYG テンプレート 関連ページ コメント CakePHP フォーラム - CakePHP Users i...
Weblog: Happy Engineer Life (PukiWiki/TrackBack 0.3)
Tracked: 2007-01-31 12:07
cakePHPでの認証モジュール
Excerpt: 以前は認証モジュールとして「Pear::Auth」を使おうと思っていたけど、ちょっと面倒。Pear::Authはいろいろ依存しているライブラリがあって、単純にそれだけをインストールする、ということは難...
Weblog: PHPのテクメモ
Tracked: 2007-08-05 09:50
http://blog.seesaa.jp/tb/20317502
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
PHP/CakePHP
Excerpt: Tag: PHP CakePHP マニュアル サンプル phpMyEdit WYSIWYG テンプレート 関連ページ コメント CakePHP フォーラム - CakePHP Users i...
Weblog: Happy Engineer Life (PukiWiki/TrackBack 0.3)
Tracked: 2007-01-31 12:07
cakePHPでの認証モジュール
Excerpt: 以前は認証モジュールとして「Pear::Auth」を使おうと思っていたけど、ちょっと面倒。Pear::Authはいろいろ依存しているライブラリがあって、単純にそれだけをインストールする、ということは難...
Weblog: PHPのテクメモ
Tracked: 2007-08-05 09:50



