CakePHP2.6でログインができません
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 3,540

退会済みユーザー
どのように対処すれば宜しいでしょうか。どうか宜しくお願いいたします。
以下、ソースコードとなります。
<?php
App::uses('AppController', 'Controller');
class UsersController extends AppController {
public $name = 'Users';
public $components = Array('Session','Auth');
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {//Does not work well
echo "Hello, world";
$this->redirect($this->Auth->redirectUrl());
}
else {
echo "Error";
$this->Session->setFlash('Wrong email address or password', 'default', array(), 'auth');
}
}
}
public function logout() {
$this->Auth->logout();
//turn $this->redirect(array('action'=>'index', 'controller'=>'Members'));
}
public function add() {
if(!empty($this->data)) {
if ($this->data) {
$this->User->create();
$this->User->save($this->data);
$this->redirect(array('action' => 'login'));
}
}
}
public function beforeFilter() {
$this->Auth->allow('add','logout');
}
}
//Model/User.php
App::uses('AppModel', 'Model');
App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
}
return true;
}
}
// Controller/AppController.php
App::uses('Controller', 'Controller');
Configure::write('debug', 1);
class AppController extends Controller {
public $components = array(
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'members',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'mains',
'action' => 'index',
'home'
),
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish',
'hashType' => 'sha1'
)
)
)
);
public function beforeFilter() {
$this->Auth->allow('index');
}
}
// View/Users/add.ctp
<div class="users form">
<?php echo $this->Form->create('User'); ?>
<fieldset>
<legend><?php echo __('Add User'); ?></legend>
<?php
echo $this->Form->input('name');
echo $this->Form->input('mail_address');
echo $this->Form->input('password');
?>
</fieldset>
<?php echo $this->Form->end(__('Registration')); ?>
</div>
// View/Users/login.ctp
<div class="users form">
<?php echo $this->Form->create('User'); ?>
<fieldset>
<legend>
<?php echo __('Please enter your mailaddress and password'); ?>
</legend>
<?php echo $this->Form->input('mail_address');
echo $this->Form->input('password');
?>
</fieldset>
<?php echo $this->Form->end(__('Login')); ?>
</div>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
Authコンポーネントがデフォルトで使用するカラム名は下記の通りです。
ユーザー名:username
パスワード:password
ソースコードの例で言うとmail_addressとpasswordをカラム名として使用しているようですので、
Authコンポーネントの設定にその指定を追加して下さい。
public $components = array(
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'members',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'mains',
'action' => 'index',
'home'
),
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish',
'hashType' => 'sha1',
'fields' => array(
'username' => 'mail_address',
'password' => 'password')
)
)
)
);
間違ってたらゴメンナサイ
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
CakePHPのAuthコンポーネントで手動|自動ログインの落とし穴 - Qiita
http://qiita.com/zaru/items/3fa6e67dfaa2205cf2d5
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.09%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
m6u
2015/10/15 17:05
どのようなエラーメッセージが表示されるのか、表示されずに結果として判断しているのか、など、もう少しわかりやすく状況を説明してください。
退会済みユーザー
2015/10/15 17:22
app/tmp/error.logには特に何も出力されておらず、UsersController.phpのlogin()関数内の$this->Auth->login()の値を出力したところ、NULLの値となります。他にどのログや関数の出力値等の情報によるエラーメッセージが必要等あれば教えて頂けますでしょうか。