ヘタレなwebサービス開発日記

アクセスカウンタ

zoom RSS 認証について

<<   作成日時 : 2010/10/29 19:17   >>

ブログ気持玉 0 / トラックバック 3 / コメント 2

こんにちは。管理人の わいあーど です。
寒くなりましたね、みなさんいかがお過ごしですか。

本当はモデルのお話の続きを書こうと思ったのですが、
まだ書けておりません。
すいません・・・リアルへたれで。

なので、急遽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にアクセスしてくれれば正式登録というのを
やりたいのですが、とりあえず今日はここまで。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(3件)

タイトル (本文) ブログ名/日時
フェラガモ バッグ
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る
フェラガモ バッグ
2013/07/04 07:38
レイバン ウェイファーラー
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る
レイバン ウェイファーラー
2013/07/06 01:06
プラダ 財布
認証について ヘタレなwebサービス開発日記/ウェブリブログ ...続きを見る
プラダ 財布
2013/07/06 06:52

コメント(2件)

内 容 ニックネーム/日時
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.
It is the birthplace of one of Adolf Hitler’s deputies, a man named Rudolf Hess. And every year, to residents’ chagrin, neo-Nazis marched to his grave site there.
BrianHyday
2017/08/20 08:25

コメントする help

ニックネーム
本 文
認証について ヘタレなwebサービス開発日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる