私は新しいプロジェクトのユーザー管理コンポーネントを開発中です。 計画は次のとおりです。CakePHP 2.0アカウントアクティベーション後の自動ログイン
- ユーザー・アカウント・データの最小量を持つページの登録(ユーザー名、パス、電子メール)
- ユーザーが
- アカウントをアクティブにするためにアクティベーションリンクを電子メールで取得するユーザーがクリックリンクと自動的に起動した後の後
- ユーザーでシステムログを自分のアカウントをアクティブにし、アカウント情報(最後のログイン、ハイテク「ユーザ名」など)
しかし、自動ログインにはいくつか問題があります。あなたは認証コンポーネントのユーザー()関数でログインしているユーザーに関する情報を取得したいまで、これは、これまでの作品
<?php
...
// set userstatus to "active" and delete meta information "activation_key"
// then automatically login
$this->User->id = $id;
$this->User->saveField('modified', date('Y-m-d H:i:s'));
$this->User->saveField('status', 1);
// $this->User->deleteActivationKey ....
$this->Auth->login($this->User->read());
$this->Session->setFlash(__('Successfully activated account. You are now logged in.'));
$this->User->saveField('last_login', date('Y-m-d H:i:s'));
$this->redirect(array('controller' => 'pages'));
...
:これは私が使用したコードの一部です。
私たちは、幅広い利用者情報アプリケーション持って、AppController-> beforeRenderでこれを使用している:
$this->set('auth', $this->Auth->user());
が、その自動ログイン・アクションの後、私は未定義のインデックス通知を取得しています。 (例えば、ビュー内の$ auth ['id']にアクセスすることによって)。 print_r()は現在のユーザーのユーザー名とハッシュされたパスワードのみを表示します。 手動でログインすると、すべて正常に動作します。アカウントのアクティベーションの後に自動ログインを使用する必要があります。
セッションに問題があると思われますか?何が間違っているのですか?
$ this-> Auth-> login($ user ['User']); –