端くれプログラマの備忘録 CakePHP [CakePHP] ユーザ登録とログイン認証を実装する (4)

[CakePHP] ユーザ登録とログイン認証を実装する (4)

(前回の続き)

本登録機能の実装

仮登録メールに記されているリンクをユーザがクリックしたら本登録を実行する。

http://サイト/users/activate/ユーザID/ハッシュ

まずはビューを実装。

<?php /*app/View/Users/activate.ctp*/ ?>

<h2>本登録</h2>
<?php
echo $this->Session->flash();
echo $this->Html->link('ログイン画面へ', '/users/login');
?>

そしてアクションを実装。

// app/Controller/UsersController.php

...
class UsersController extends AppController {
    ....
    // 本登録
    public function activate($user_id = null, $in_hash = null) {
        $this->User->id = $user_id;
        if ($this->User->exists() && $in_hash == $this->User->getActivationHash()) {
            $this->User->saveField('active', 1);
            $this->Session->setFlash('本登録が完了しました。');
        } else {
            $this->Session->setFlash('不正なリンク');
        }
    }
    ....
}

これでユーザ登録の仕組みは完成。次はログイン・ログアウトを実装する。

(次回へ続く)

全ソース (GitHub)
https://github.com/84kure/cakephp2-sample-auth