Okei.. ajax ログインで少し問題が発生しています。
ログインフォームを最初に送信すると、正常に機能しています。
- 正しいユーザー名/パスワードを入力 => ログイン済み => 正常に動作しています。
- 間違ったユーザー名/パスワードを入力した場合 => エラーメッセージの表示 => (間違った名前/パス)
しかし、エラーメッセージが表示された後、正しいユーザー名とパスワードを再入力しようとすると、フォームを再送信できません!?!
Firebug では、フォームが配置されているフルページの「応答」が返されます。
ログインの詳細を再投稿するには、ページをリロードする必要があります。
これはセキュリティコンポーネントと関係があると思いますが、無効にすることは問題外です。
助言がありますか??
私のログインの基本。
var data = $("#LoginAjax").serialize();
$.ajax({
type: "post",
url: "/users/ajax_login",
data: data,
dataType: "json",
success: function(data){
if (data == 0) {
alert('wrong username/pass, try again!');
//location.reload();
}
}
});
public function ajax_login() {
$this->autoRender = false;
if ($this->request->is('ajax')) {
$this->request->data['User']['password'] = $this->Auth->password($this->request->data['User']['password']);
$user = $this->User->find('first', array('conditions' => array('username' => $this->request->data['User']['email'], 'password' => $this->request->data['User']['password'])));
if($user){
echo 1;
} else {
echo 0;
}
} else {
$this->Session->setFlash('No Dice!', 'flash/alert');
$this->redirect($this->Auth->logout());
}
exit;
}