こんにちは。管理人の わいあーど です。 寒くなりましたね、みなさんいかがお過ごしですか。 本当はモデルのお話の続きを書こうと思ったのですが、 まだ書けておりません。 すいません・・・リアルへたれで。 なので、急遽CookBookを見ながら料理してみました認証(Auth)について始めます。 CakeCookbook http://book.cakephp.org/ja/view/172/Authentication をみながらの作業です。 ではではスタート。 まず、認証とはパスワードとIDでユーザーを識別するアレのこと。 ログインとか書いてあるフォームのことです。 CakePHPでは標準で、データーベース内のテーブル名「users」にある、 usernameとpasswordというカラム名をつかうそうです。 (passwordは自動で暗号化してくれます) さっそく書いてみましょう。 まずはtableつくろっと、 mysql> create table users( -> id integer auto_increment not null primary key, -> username char(50) not null, -> password char(50) not null ); varcharとcharの違いは、データーが固定長(char)か可変長(varchar)とのこと、 charの場合は指定サイズに満たない分はスペースで埋めます。 データーを探すときにスペースが後ろに入っていることを考慮してコーディングしてくださいってことみたい。 コントローラー側ですが、 <?php class UsersController extends AppController { var $name = 'Users'; var $components = array('Auth'); /* login()の中身は空にしてください。 * 自動的に機能が提供されます。 */ function login() { } function logout() { this->redirect($this->Auth->logout()); } } classの中に var $components = array('Auth'); と書くだけでいいよ。とあります。 しかも、login()のところが空っぽなのが不思議な気持ちになります。 ビュー側はlogin.ctpを/view/users/の中に書きます。 これだけで良いとのことですが、logout.ctpは作らないのかな。 <?php if ($session->check('Message.auth')) $session->flash('auth'); echo $form->create('User',array('action'=>'login')); echo $form->input('username'); echo $form->input('password'); echo $form->end('Login'); ?> $session->check('Message.auth') と $session->check('auth') のところがまだよく分からないのですが、まずは動くところを見てみよっと。 えっとその前にモデルですね。 <?php class User extends AppModel { } さて見てみましょう。 おお、ログインページができています。 さっそくログインを。と思ったのですがユーザーを作っていませんでした。 scaffoldすればいいのかなと、やってみたもののloginページに戻されるだけ ということでユーザー追加のページも作っちゃおうかな。 まずコントローラーに function signup() { if (!empty($this->data)) { $this->user->save($this->data); $this->redirect("./login"); } } を追加します。 フォームが空で無いならuserテーブルに書き込みです。 view側も作ります。 app/view/users/signup.ctp サインアップ <?php echo $form->create("User",array("action"=>"./signup")); ?> <?php echo $form->input("username"); ?> <?php echo $form->input("password"); ?> <?php echo $form->end("送信"); ?> これでOK、早速ユーザーをつくろう! っとアクセスしたものの、やはりloginページにリダイレクトされます。 usersコントローラーにアクセスするとまずログインという動作をするということが分かりました。 ですので、signupアクションの時には認証をしないという仕様にします。 function beforeFilter() { $this->Auth->allow('signup'); } allow('認証を除外したいアクション名'); で指定します。 認証に成功しているか確認するだけですので、 http://localhost/users/signup で新規ユーザーの登録が出来て、 loginページで正しいパスワードとidでエラーがでなければOKです。 間違ったid/passwordですとエラーがでます。 のちのちには登録後、確認メールが来てURLにアクセスしてくれれば正式登録というのを やりたいのですが、とりあえず今日はここまで。 |
<< 前記事(2010/10/26) | ブログのトップへ | 後記事(2010/11/04) >> |
タイトル (本文) | ブログ名/日時 |
---|---|
フェラガモ バッグ
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る |
フェラガモ バッグ 2013/07/04 07:38 |
レイバン ウェイファーラー
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る |
レイバン ウェイファーラー 2013/07/06 01:06 |
プラダ 財布
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る |
プラダ 財布 2013/07/06 06:52 |
内 容 | ニックネーム/日時 |
---|---|
A church was created with the pensive that if Indiana’s budding law protected unerring practices, then it should also permit marijuana run through as division of a broader spiritual philosophy. |
MattBdozy 2015/07/09 06:13 |
For decades, Wunsiedel, a German town near the Czech border, has struggled with a parade of unwanted visitors. |
BrianHyday 2017/08/20 08:25 |
<< 前記事(2010/10/26) | ブログのトップへ | 後記事(2010/11/04) >> |